Uploaded image for project: 'Derby'
  1. Derby
  2. DERBY-5390

NPE in BasicDatabase.stop in replication slave mode (dd.clearSequenceCaches)

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 10.8.2.2, 10.9.1.0
    • 10.8.2.2, 10.9.1.0
    • None
    • None

    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

        1. derby-5390-1a_check_for_null.diff
          1 kB
          Kristian Waagan

        Issue Links

          Activity

            People

              kristwaa Kristian Waagan
              kristwaa Kristian Waagan
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: