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]