Author: rgodfrey
Date: Mon Jul 25 14:48:51 2016
New Revision: 1754025

URL: http://svn.apache.org/viewvc?rev=1754025&view=rev
Log:
QPID-7278 : Fix issues with Derby store not properly closing

Modified:
    
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCConfigurationStore.java
    
qpid/java/trunk/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyConfigurationStore.java

Modified: 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCConfigurationStore.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCConfigurationStore.java?rev=1754025&r1=1754024&r2=1754025&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCConfigurationStore.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCConfigurationStore.java
 Mon Jul 25 14:48:51 2016
@@ -932,4 +932,14 @@ public abstract class AbstractJDBCConfig
     }
 
 
+    protected final void doIfNotState(State state, Runnable action)
+    {
+        synchronized (_lock)
+        {
+            if(_state != state)
+            {
+                action.run();
+            }
+        }
+    }
 }

Modified: 
qpid/java/trunk/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyConfigurationStore.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyConfigurationStore.java?rev=1754025&r1=1754024&r2=1754025&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyConfigurationStore.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyConfigurationStore.java
 Mon Jul 25 14:48:51 2016
@@ -102,7 +102,23 @@ public class DerbyConfigurationStore ext
         {
             throw new IllegalStateException("Cannot close the store as the 
provided message store is still open");
         }
+       
+        doIfNotState(CLOSED, new Runnable() 
+                             {
+                                 @Override
+                                 public void run()
+                                 {
+                                     try
+                                     {
+                                         
DerbyUtils.shutdownDatabase(_connectionURL);
+                                     }
+                                     catch (SQLException e)
+                                     {
+                                         throw new StoreException("Error 
closing configuration store", e);
+                                     }
 
+                                 }
+                             }); 
         setState(CLOSED);
 
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to