Description
To reproduce, set up a replication pair and then stop the master (I used "stopMaster=true").
From derby.log on the slave:
Replication slave role was stopped for database 'replicDB'.
java.lang.NullPointerException
at org.apache.derby.impl.db.BasicDatabase.stop(Unknown Source)
at org.apache.derby.impl.db.SlaveDatabase.stop(SlaveDatabase.java:167)
at org.apache.derby.impl.services.monitor.TopService.stop(TopService.java:443)
at org.apache.derby.impl.services.monitor.TopService.shutdown(TopService.java:394)
at org.apache.derby.impl.services.monitor.BaseMonitor.shutdown(BaseMonitor.java:229)
at org.apache.derby.impl.db.DatabaseContextImpl.cleanupOnError(DatabaseContextImpl.java:77)
at org.apache.derby.iapi.services.context.ContextManager.cleanupOnError(ContextManager.java:343)
at org.apache.derby.impl.jdbc.TransactionResourceImpl.cleanupOnError(TransactionResourceImpl.java:437)
at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:339)
at org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2290)
at org.apache.derby.impl.jdbc.EmbedConnection.internalStopReplicationSlave(EmbedConnection.java:1034)
at org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.java:353)
at org.apache.derby.impl.jdbc.EmbedConnection30.<init>(EmbedConnection30.java:73)
at org.apache.derby.impl.jdbc.EmbedConnection40.<init>(EmbedConnection40.java:51)
at org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Driver40.java:70)
at org.apache.derby.jdbc.InternalDriver.connect(InternalDriver.java:248)
at org.apache.derby.jdbc.AutoloadedDriver.connect(AutoloadedDriver.java:144)
at org.apache.derby.impl.db.SlaveDatabase.handleShutdown(SlaveDatabase.java:428)
at org.apache.derby.impl.db.SlaveDatabase.access$200(SlaveDatabase.java:72)
at org.apache.derby.impl.db.SlaveDatabase$SlaveDatabaseBootThread.run(SlaveDatabase.java:328)
at java.lang.Thread.run(Thread.java:722)
The reason is that there is no data dictionary available when the database is in replication slave mode.
Note that the exception is caught and simply printed to derby.log.
Attachments
Attachments
Issue Links
- breaks
-
DERBY-5398 NullPointerException in storemore/bug3498.sql
- Closed