I'm getting a NPE when I try to connect to a database with securityMechanism=8. This is with Derby 10.3.1.4. I'm setting up the database by creating it, then running the following script from inside my app using the org.apache.derby.tools.ij class: ---------- call syscs_util.syscs_set_database_property( 'derby.database.propertiesOnly', 'true'); call syscs_util.syscs_set_database_property( 'derby.authentication.provider', 'BUILTIN'); call syscs_util.syscs_set_database_property( 'derby.connection.requireAuthentication', 'true'); call syscs_util.syscs_set_database_property( 'derby.drda.securityMechanism', 'STRONG_PASSWORD_SUBSTITUTE_SECURITY'); ---------- However, when I subsequently close then reopen the database with the following code I get a NPE: ---------- // Try opening the database. Properties props = new Properties(); props.put("securityMechanism", "8"); props.put("user", dbUser); props.put("password", dbPass); Connection db = null; try { StringBuilder sb = new StringBuilder("jdbc:derby:"); sb.append(dbName); db = DriverManager.getConnection(sb.toString(), props); } // Handle exception } ---------- Stack trace: ---------- > java.lang.NullPointerException'. [XJ001] > Caused by: java.sql.SQLException: Java exception: ': java.lang.NullPointerException'. > at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source) > at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source) > at org.apache.derby.impl.jdbc.Util.javaException(Unknown Source) > at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source) > at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source) > at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source) > at org.apache.derby.impl.jdbc.EmbedConnection.(Unknown Source) > at org.apache.derby.impl.jdbc.EmbedConnection30.(Unknown Source) > at org.apache.derby.impl.jdbc.EmbedConnection40.(Unknown Source) > at org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Unknown Source) > at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source) > at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown Source) > at java.sql.DriverManager.getConnection(DriverManager.java:582) > at java.sql.DriverManager.getConnection(DriverManager.java:154) > at org.opensolaris.auth.db.DBManager.openDatabase(DBManager.java:152) > ... 1 more > Caused by: java.sql.SQLException: Java exception: ': java.lang.NullPointerException'. > at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) > at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source) > ... 16 more > Caused by: java.lang.NullPointerException > at org.apache.derby.impl.jdbc.authentication.AuthenticationServiceBase.substitutePassword(Unknown Source) > at org.apache.derby.impl.jdbc.authentication.BasicAuthenticationServiceImpl.authenticateUser(Unknown Source) > at org.apache.derby.impl.jdbc.authentication.AuthenticationServiceBase.authenticate(Unknown Source) > at org.apache.derby.impl.jdbc.EmbedConnection.checkUserCredentials(Unknown Source) > ... 10 more ---------- Anyone have any suggestions as to where I'm going wrong? If I remove the props.put("securityMechanism", "8"); the code works fine, but I thought it was necessary to have that if you'd configured the database to use STRONG_PASSWORD_SUBSTITUTE_SECURITY? Am I actually setting STRONG_PASSWORD_SUBSTITUTE_SECURITY correctly in the first place in ij script? Thanks, -- Alan Burlison --