You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by kr...@apache.org on 2011/09/02 08:32:53 UTC

svn commit: r1164358 - /db/derby/code/trunk/java/engine/org/apache/derby/impl/db/BasicDatabase.java

Author: kristwaa
Date: Fri Sep  2 06:32:53 2011
New Revision: 1164358

URL: http://svn.apache.org/viewvc?rev=1164358&view=rev
Log:
DERBY-5390: NPE in BasicDatabase.stop in replication slave mode (dd.clearSequenceCaches)

Added check to see if the data dictionary is available.

Patch file: derby-5390-1a_check_for_null.diff

Modified:
    db/derby/code/trunk/java/engine/org/apache/derby/impl/db/BasicDatabase.java

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/db/BasicDatabase.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/db/BasicDatabase.java?rev=1164358&r1=1164357&r2=1164358&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/db/BasicDatabase.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/db/BasicDatabase.java Fri Sep  2 06:32:53 2011
@@ -241,13 +241,16 @@ public class BasicDatabase implements Mo
     }
 
 	public void stop() {
-        try {
-            // on orderly shutdown, try not to leak unused numbers from the sequence generators.
-            dd.clearSequenceCaches();
-        }
-        catch (Throwable t)
-        {
-            t.printStackTrace(Monitor.getStream().getPrintWriter());
+        // The data dictionary is not available if this database has the
+        // role as an active replication slave database.
+        if (dd != null) {
+            try {
+                // on orderly shutdown, try not to leak unused numbers from
+                // the sequence generators.
+                dd.clearSequenceCaches();
+            } catch (StandardException se) {
+                se.printStackTrace(Monitor.getStream().getPrintWriter());
+            }
         }
 		active = false;
 	}