summaryrefslogtreecommitdiff
path: root/java/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyMessageStore.java
diff options
context:
space:
mode:
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.java27
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