You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ma...@apache.org on 2014/09/15 16:03:28 UTC
svn commit: r1625035 - in /qpid/trunk/qpid/java/broker-core/src:
main/java/org/apache/qpid/server/store/JsonFileConfigStore.java
test/java/org/apache/qpid/server/store/JsonFileConfigStoreTest.java
Author: macbean
Date: Mon Sep 15 14:03:28 2014
New Revision: 1625035
URL: http://svn.apache.org/r1625035
Log:
QPID-6095: [Java Broker] Deletion of an ERRORED JSON VHN with an invalid store path causes an exception
Modified:
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/JsonFileConfigStore.java
qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/JsonFileConfigStoreTest.java
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/JsonFileConfigStore.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/JsonFileConfigStore.java?rev=1625035&r1=1625034&r2=1625035&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/JsonFileConfigStore.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/JsonFileConfigStore.java Mon Sep 15 14:03:28 2014
@@ -90,7 +90,6 @@ public class JsonFileConfigStore impleme
private String _name;
private FileLock _fileLock;
private String _configFileName;
- private String _backupFileName;
private String _lockFileName;
private static final Module _module;
@@ -170,14 +169,12 @@ public class JsonFileConfigStore impleme
{
_directoryName = fileFromSettings.getParent();
_configFileName = fileFromSettings.getName();
- _backupFileName = fileFromSettings.getName() + ".bak";
_lockFileName = fileFromSettings.getName() + ".lck";
}
else
{
_directoryName = configurationStoreSettings.getStorePath();
_configFileName = _name + ".json";
- _backupFileName = _name + ".bak";
_lockFileName = _name + ".lck";
}
@@ -187,21 +184,14 @@ public class JsonFileConfigStore impleme
if(!fileExists(_configFileName))
{
- if(!fileExists(_backupFileName))
+ File newFile = new File(_directoryName, _configFileName);
+ try
{
- File newFile = new File(_directoryName, _configFileName);
- try
- {
- _objectMapper.writeValue(newFile, Collections.emptyMap());
- }
- catch (IOException e)
- {
- throw new StoreException("Could not write configuration file " + newFile, e);
- }
+ _objectMapper.writeValue(newFile, Collections.emptyMap());
}
- else
+ catch (IOException e)
{
- renameFile(_backupFileName, _configFileName);
+ throw new StoreException("Could not write configuration file " + newFile, e);
}
}
}
@@ -399,12 +389,8 @@ public class JsonFileConfigStore impleme
File tmpFile = File.createTempFile("cfg","tmp", new File(_directoryName));
tmpFile.deleteOnExit();
_objectMapper.writeValue(tmpFile,data);
- renameFile(_configFileName,_backupFileName);
renameFile(tmpFile.getName(),_configFileName);
tmpFile.delete();
- File backupFile = new File(_directoryName, _backupFileName);
- backupFile.delete();
-
}
catch (IOException e)
{
@@ -581,11 +567,14 @@ public class JsonFileConfigStore impleme
@Override
public void onDelete()
{
- if (_configFileName != null && _backupFileName != null)
+ if (_configFileName != null)
{
- renameFile(_configFileName,_backupFileName);
+ File configFile = new File(_directoryName, _configFileName);
+ if (!configFile.delete())
+ {
+ _logger.info("Failed to delete JSON file config store: " + _configFileName);
+ }
_configFileName = null;
- _backupFileName = null;
}
}
Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/JsonFileConfigStoreTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/JsonFileConfigStoreTest.java?rev=1625035&r1=1625034&r2=1625035&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/JsonFileConfigStoreTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/JsonFileConfigStoreTest.java Mon Sep 15 14:03:28 2014
@@ -351,14 +351,11 @@ public class JsonFileConfigStoreTest ext
public void testStoreFileLifecycle()
{
File expectedJsonFile = new File(_storeLocation, _parent.getName() + ".json");
- File expectedJsonFileBak = new File(_storeLocation, _parent.getName() + ".bak");
assertFalse("JSON store should not exist", expectedJsonFile.exists());
- assertFalse("JSON backup should not exist", expectedJsonFileBak.exists());
_store.openConfigurationStore(_parent, false);
assertTrue("JSON store should exist after open", expectedJsonFile.exists());
- assertFalse("JSON backup should not exist after open", expectedJsonFileBak.exists());
_store.closeConfigurationStore();
assertTrue("JSON store should exist after close", expectedJsonFile.exists());
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org