summaryrefslogtreecommitdiff
path: root/java/broker-core/src/main/java/org/apache/qpid/server/store/JsonFileConfigStore.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/broker-core/src/main/java/org/apache/qpid/server/store/JsonFileConfigStore.java')
-rw-r--r--java/broker-core/src/main/java/org/apache/qpid/server/store/JsonFileConfigStore.java20
1 files changed, 13 insertions, 7 deletions
diff --git a/java/broker-core/src/main/java/org/apache/qpid/server/store/JsonFileConfigStore.java b/java/broker-core/src/main/java/org/apache/qpid/server/store/JsonFileConfigStore.java
index 5001086010..b00428064d 100644
--- a/java/broker-core/src/main/java/org/apache/qpid/server/store/JsonFileConfigStore.java
+++ b/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()