diff options
Diffstat (limited to 'java/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyMessageStore.java')
-rw-r--r-- | java/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyMessageStore.java | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/java/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyMessageStore.java b/java/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyMessageStore.java index d9948fe21e..9c6baa52ba 100644 --- a/java/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyMessageStore.java +++ b/java/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyMessageStore.java @@ -21,6 +21,7 @@ package org.apache.qpid.server.store.derby; +import java.io.File; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; @@ -30,6 +31,7 @@ import org.apache.log4j.Logger; import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.store.FileBasedSettings; import org.apache.qpid.server.store.StoreException; +import org.apache.qpid.util.FileUtils; /** * Implementation of a MessageStore backed by Apache Derby. @@ -71,11 +73,11 @@ public class DerbyMessageStore extends AbstractDerbyMessageStore } @Override - public void onDelete() + public void onDelete(ConfiguredObject parent) { if (isMessageStoreOpen()) { - throw new IllegalStateException("Cannot delete the store as the message store is still open"); + throw new IllegalStateException("Cannot delete the store as the provided message store is still open"); } if (LOGGER.isDebugEnabled()) @@ -83,18 +85,19 @@ public class DerbyMessageStore extends AbstractDerbyMessageStore LOGGER.debug("Deleting store " + _storeLocation); } - try - { - DerbyUtils.deleteDatabaseLocation(_storeLocation); - } - catch (StoreException se) - { - LOGGER.debug("Failed to delete the store at location " + _storeLocation); - } - finally + FileBasedSettings fileBasedSettings = (FileBasedSettings)parent; + String storePath = fileBasedSettings.getStorePath(); + + if (storePath != null) { - _storeLocation = null; + File configFile = new File(storePath); + if (!FileUtils.delete(configFile, true)) + { + LOGGER.info("Failed to delete the store at location " + storePath); + } } + + _storeLocation = null; } @Override |