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