diff options
| author | Andrew MacBean <macbean@apache.org> | 2014-09-15 14:16:31 +0000 |
|---|---|---|
| committer | Andrew MacBean <macbean@apache.org> | 2014-09-15 14:16:31 +0000 |
| commit | acc5dc6df13777cd7cd399094342d5535c46f3eb (patch) | |
| tree | 3ed1524afb509513030ec0b690fb699d9deead1a /qpid/java/broker-core/src | |
| parent | c5c6fbdd6dc6f73321b4e5be840d7533cc932e69 (diff) | |
| download | qpid-python-acc5dc6df13777cd7cd399094342d5535c46f3eb.tar.gz | |
QPID-6075: [Java Broker] Deleting VHN fails to delete underlying store files if VHN has not been started
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1625039 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker-core/src')
13 files changed, 26 insertions, 19 deletions
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java index 44b76cd5c8..4032ae2f39 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java @@ -254,7 +254,7 @@ public class ManagementModeStoreHandler implements DurableConfigurationStore } @Override - public void onDelete() + public void onDelete(ConfiguredObject<?> parent) { } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCConfigurationStore.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCConfigurationStore.java index b3d0428bb3..52072678e8 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCConfigurationStore.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCConfigurationStore.java @@ -912,7 +912,7 @@ public abstract class AbstractJDBCConfigurationStore implements MessageStoreProv protected abstract String getBlobAsString(ResultSet rs, int col) throws SQLException; @Override - public void onDelete() + public void onDelete(ConfiguredObject<?> parent) { // TODO should probably check we are closed try diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCMessageStore.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCMessageStore.java index 71754b21c9..9633e32408 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCMessageStore.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCMessageStore.java @@ -1964,7 +1964,7 @@ public abstract class AbstractJDBCMessageStore implements MessageStore protected abstract void storedSizeChange(int storeSizeIncrease); @Override - public void onDelete() + public void onDelete(ConfiguredObject<?> parent) { // TODO should probably check we are closed try diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractMemoryStore.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractMemoryStore.java index a9af138a02..54999551e0 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractMemoryStore.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractMemoryStore.java @@ -130,7 +130,7 @@ public abstract class AbstractMemoryStore implements DurableConfigurationStore, } @Override - public void onDelete() + public void onDelete(ConfiguredObject<?> parent) { } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/DurableConfigurationStore.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/DurableConfigurationStore.java index 588edd9cab..1bf83162e6 100755 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/DurableConfigurationStore.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/DurableConfigurationStore.java @@ -93,5 +93,5 @@ public interface DurableConfigurationStore * has not be opened, then this call will be ignored. The store should be closed * before making this call. */ - void onDelete(); + void onDelete(ConfiguredObject<?> parent); } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/JsonFileConfigStore.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/JsonFileConfigStore.java index 5001086010..b00428064d 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/JsonFileConfigStore.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/JsonFileConfigStore.java @@ -40,6 +40,7 @@ import java.util.Map; import java.util.UUID; import org.apache.log4j.Logger; +import org.apache.qpid.util.FileUtils; import org.codehaus.jackson.JsonGenerator; import org.codehaus.jackson.JsonProcessingException; import org.codehaus.jackson.Version; @@ -388,7 +389,7 @@ public class JsonFileConfigStore implements DurableConfigurationStore { File tmpFile = File.createTempFile("cfg","tmp", new File(_directoryName)); tmpFile.deleteOnExit(); - _objectMapper.writeValue(tmpFile,data); + _objectMapper.writeValue(tmpFile, data); renameFile(tmpFile.getName(),_configFileName); tmpFile.delete(); } @@ -565,17 +566,22 @@ public class JsonFileConfigStore implements DurableConfigurationStore } @Override - public void onDelete() + public void onDelete(ConfiguredObject<?> parent) { - if (_configFileName != null) + FileBasedSettings fileBasedSettings = (FileBasedSettings)parent; + String storePath = fileBasedSettings.getStorePath(); + + if (storePath != null) { - File configFile = new File(_directoryName, _configFileName); - if (!configFile.delete()) + File configFile = new File(storePath); + if (!FileUtils.delete(configFile, true)) { - _logger.info("Failed to delete JSON file config store: " + _configFileName); + _logger.info("Failed to delete the store at location " + storePath); } - _configFileName = null; } + + _configFileName = null; + _directoryName = null; } private void releaseFileLock() diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/MemoryMessageStore.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/MemoryMessageStore.java index 9c0a5118ff..c108918d34 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/MemoryMessageStore.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/MemoryMessageStore.java @@ -260,7 +260,7 @@ public class MemoryMessageStore implements MessageStore } @Override - public void onDelete() + public void onDelete(ConfiguredObject<?> parent) { } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/MessageStore.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/MessageStore.java index a4eaf48353..1629454cde 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/MessageStore.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/MessageStore.java @@ -79,5 +79,5 @@ public interface MessageStore */ void closeMessageStore(); - void onDelete(); + void onDelete(ConfiguredObject<?> parent); } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/NullMessageStore.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/NullMessageStore.java index 2e6c437e95..b6f4ea52ce 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/NullMessageStore.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/NullMessageStore.java @@ -117,7 +117,7 @@ public abstract class NullMessageStore implements MessageStore, DurableConfigura } @Override - public void onDelete() + public void onDelete(ConfiguredObject<?> parent) { } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java index eacc4f2458..2d58cb9327 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java @@ -1175,7 +1175,7 @@ public abstract class AbstractVirtualHost<X extends AbstractVirtualHost<X>> exte { try { - ms.onDelete(); + ms.onDelete(this); } catch (Exception e) { diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractVirtualHostNode.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractVirtualHostNode.java index e866effc54..45a3c1eb5a 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractVirtualHostNode.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractVirtualHostNode.java @@ -191,7 +191,7 @@ public abstract class AbstractVirtualHostNode<X extends AbstractVirtualHostNode< deleteVirtualHostIfExists(); close(); deleted(); - getConfigurationStore().onDelete(); + getConfigurationStore().onDelete(this); } protected void deleteVirtualHostIfExists() diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecovererTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecovererTest.java index aba7e460bf..c94a0ef9c4 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecovererTest.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecovererTest.java @@ -351,7 +351,7 @@ public class BrokerStoreUpgraderAndRecovererTest extends QpidTestCase } @Override - public void onDelete() + public void onDelete(ConfiguredObject<?> parent) { } diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/JsonFileConfigStoreTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/JsonFileConfigStoreTest.java index 72e14c7a4b..d76ba0bc76 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/JsonFileConfigStoreTest.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/JsonFileConfigStoreTest.java @@ -34,6 +34,7 @@ import java.util.HashMap; import java.util.Map; import java.util.UUID; +import org.apache.qpid.server.model.VirtualHostNode; import org.mockito.ArgumentMatcher; import org.mockito.InOrder; @@ -360,7 +361,7 @@ public class JsonFileConfigStoreTest extends QpidTestCase _store.closeConfigurationStore(); assertTrue("JSON store should exist after close", expectedJsonFile.exists()); - _store.onDelete(); + _store.onDelete(_parent); assertFalse("JSON store should not exist after delete", expectedJsonFile.exists()); } |
