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:16:32 UTC

svn commit: r1625039 - in /qpid/trunk/qpid/java: bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/ bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/ broker-core/src/main/java/org/apache/qpid/server/configuration/store/ broke...

Author: macbean
Date: Mon Sep 15 14:16:31 2014
New Revision: 1625039

URL: http://svn.apache.org/r1625039
Log:
QPID-6075: [Java Broker] Deleting VHN fails to delete underlying store files if VHN has not been started

Modified:
    qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBConfigurationStore.java
    qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStore.java
    qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreTest.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCConfigurationStore.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCMessageStore.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractMemoryStore.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/DurableConfigurationStore.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/JsonFileConfigStore.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/MemoryMessageStore.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/MessageStore.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/NullMessageStore.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractVirtualHostNode.java
    qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecovererTest.java
    qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/JsonFileConfigStoreTest.java
    qpid/trunk/qpid/java/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyConfigurationStore.java
    qpid/trunk/qpid/java/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyMessageStore.java
    qpid/trunk/qpid/java/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyUtils.java
    qpid/trunk/qpid/java/broker-plugins/derby-store/src/test/java/org/apache/qpid/server/store/derby/DerbyMessageStoreTest.java
    qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/test/java/org/apache/qpid/server/store/jdbc/JDBCMessageStoreTest.java

Modified: qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBConfigurationStore.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBConfigurationStore.java?rev=1625039&r1=1625038&r2=1625039&view=diff
==============================================================================
--- qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBConfigurationStore.java (original)
+++ qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBConfigurationStore.java Mon Sep 15 14:16:31 2014
@@ -44,6 +44,7 @@ import org.apache.log4j.Logger;
 import org.apache.qpid.server.model.ConfiguredObject;
 import org.apache.qpid.server.store.ConfiguredObjectRecord;
 import org.apache.qpid.server.store.DurableConfigurationStore;
+import org.apache.qpid.server.store.FileBasedSettings;
 import org.apache.qpid.server.store.MessageStore;
 import org.apache.qpid.server.store.MessageStoreProvider;
 import org.apache.qpid.server.store.SizeMonitoringSettings;
@@ -479,27 +480,26 @@ public class BDBConfigurationStore imple
     }
 
     @Override
-    public void onDelete()
+    public void onDelete(ConfiguredObject<?> parent)
     {
-        if (!isConfigurationStoreOpen() && !_providedMessageStore.isMessageStoreOpen())
+        if (LOGGER.isDebugEnabled())
         {
-            if (_storeLocation != null)
-            {
-                if (LOGGER.isDebugEnabled())
-                {
-                    LOGGER.debug("Deleting store " + _storeLocation);
-                }
+            LOGGER.debug("Deleting store " + _storeLocation);
+        }
 
-                File location = new File(_storeLocation);
-                if (location.exists())
-                {
-                    if (!FileUtils.delete(location, true))
-                    {
-                        LOGGER.error("Cannot delete " + _storeLocation);
-                    }
-                }
+        FileBasedSettings fileBasedSettings = (FileBasedSettings)parent;
+        String storePath = fileBasedSettings.getStorePath();
+
+        if (storePath != null)
+        {
+            File configFile = new File(storePath);
+            if (!FileUtils.delete(configFile, true))
+            {
+                LOGGER.info("Failed to delete the store at location " + storePath);
             }
         }
+
+        _storeLocation = null;
     }
 
     private boolean isConfigurationStoreOpen()
@@ -562,7 +562,7 @@ public class BDBConfigurationStore imple
         }
 
         @Override
-        public void onDelete()
+        public void onDelete(ConfiguredObject<?> parent)
         {
             // Nothing to do, message store will be deleted when configuration store is deleted
         }

Modified: qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStore.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStore.java?rev=1625039&r1=1625038&r2=1625039&view=diff
==============================================================================
--- qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStore.java (original)
+++ qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStore.java Mon Sep 15 14:16:31 2014
@@ -27,6 +27,7 @@ import com.sleepycat.je.DatabaseExceptio
 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.SizeMonitoringSettings;
 import org.apache.qpid.server.store.StoreException;
 import org.apache.qpid.util.FileUtils;
@@ -102,27 +103,26 @@ public class BDBMessageStore extends Abs
     }
 
     @Override
-    public void onDelete()
+    public void onDelete(ConfiguredObject<?> parent)
     {
-        if (!_messageStoreOpen.get())
+        if (LOGGER.isDebugEnabled())
         {
-            if (_storeLocation != null)
-            {
-                if (LOGGER.isDebugEnabled())
-                {
-                    LOGGER.debug("Deleting store " + _storeLocation);
-                }
+            LOGGER.debug("Deleting store " + _storeLocation);
+        }
 
-                File location = new File(_storeLocation);
-                if (location.exists())
-                {
-                    if (!FileUtils.delete(location, true))
-                    {
-                        LOGGER.error("Cannot delete " + _storeLocation);
-                    }
-                }
+        FileBasedSettings fileBasedSettings = (FileBasedSettings)parent;
+        String storePath = fileBasedSettings.getStorePath();
+
+        if (storePath != null)
+        {
+            File configFile = new File(storePath);
+            if (!FileUtils.delete(configFile, true))
+            {
+                LOGGER.info("Failed to delete the store at location " + storePath);
             }
         }
+
+        _storeLocation = null;
     }
 
     @Override

Modified: qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreTest.java?rev=1625039&r1=1625038&r2=1625039&view=diff
==============================================================================
--- qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreTest.java (original)
+++ qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreTest.java Mon Sep 15 14:16:31 2014
@@ -402,7 +402,11 @@ public class BDBMessageStoreTest extends
         getStore().closeMessageStore();
         assertTrue("Store does not exist at " + storeLocation, location.exists());
 
-        getStore().onDelete();
+        BDBVirtualHost mockVH = mock(BDBVirtualHost.class);
+        when(mockVH.getStorePath()).thenReturn(getStore().getStoreLocation());
+
+        getStore().onDelete(mockVH);
+
         assertFalse("Store exists at " + storeLocation, location.exists());
     }
 

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java?rev=1625039&r1=1625038&r2=1625039&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java Mon Sep 15 14:16:31 2014
@@ -254,7 +254,7 @@ public class ManagementModeStoreHandler 
     }
 
     @Override
-    public void onDelete()
+    public void onDelete(ConfiguredObject<?> parent)
     {
     }
 

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCConfigurationStore.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCConfigurationStore.java?rev=1625039&r1=1625038&r2=1625039&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCConfigurationStore.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCConfigurationStore.java Mon Sep 15 14:16:31 2014
@@ -912,7 +912,7 @@ public abstract class AbstractJDBCConfig
     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

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCMessageStore.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCMessageStore.java?rev=1625039&r1=1625038&r2=1625039&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCMessageStore.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCMessageStore.java Mon Sep 15 14:16:31 2014
@@ -1964,7 +1964,7 @@ public abstract class AbstractJDBCMessag
     protected abstract void storedSizeChange(int storeSizeIncrease);
 
     @Override
-    public void onDelete()
+    public void onDelete(ConfiguredObject<?> parent)
     {
         // TODO should probably check we are closed
         try

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractMemoryStore.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractMemoryStore.java?rev=1625039&r1=1625038&r2=1625039&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractMemoryStore.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractMemoryStore.java Mon Sep 15 14:16:31 2014
@@ -130,7 +130,7 @@ public abstract class AbstractMemoryStor
     }
 
     @Override
-    public void onDelete()
+    public void onDelete(ConfiguredObject<?> parent)
     {
     }
 

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/DurableConfigurationStore.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/DurableConfigurationStore.java?rev=1625039&r1=1625038&r2=1625039&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/DurableConfigurationStore.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/DurableConfigurationStore.java Mon Sep 15 14:16:31 2014
@@ -93,5 +93,5 @@ public interface DurableConfigurationSto
      * 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);
 }

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=1625039&r1=1625038&r2=1625039&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:16:31 2014
@@ -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 impleme
         {
             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 impleme
     }
 
     @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()

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/MemoryMessageStore.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/MemoryMessageStore.java?rev=1625039&r1=1625038&r2=1625039&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/MemoryMessageStore.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/MemoryMessageStore.java Mon Sep 15 14:16:31 2014
@@ -260,7 +260,7 @@ public class MemoryMessageStore implemen
     }
 
     @Override
-    public void onDelete()
+    public void onDelete(ConfiguredObject<?> parent)
     {
     }
 

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/MessageStore.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/MessageStore.java?rev=1625039&r1=1625038&r2=1625039&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/MessageStore.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/MessageStore.java Mon Sep 15 14:16:31 2014
@@ -79,5 +79,5 @@ public interface MessageStore
      */
     void closeMessageStore();
 
-    void onDelete();
+    void onDelete(ConfiguredObject<?> parent);
 }

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/NullMessageStore.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/NullMessageStore.java?rev=1625039&r1=1625038&r2=1625039&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/NullMessageStore.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/NullMessageStore.java Mon Sep 15 14:16:31 2014
@@ -117,7 +117,7 @@ public abstract class NullMessageStore i
     }
 
     @Override
-    public void onDelete()
+    public void onDelete(ConfiguredObject<?> parent)
     {
     }
 

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java?rev=1625039&r1=1625038&r2=1625039&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java Mon Sep 15 14:16:31 2014
@@ -1175,7 +1175,7 @@ public abstract class AbstractVirtualHos
             {
                 try
                 {
-                    ms.onDelete();
+                    ms.onDelete(this);
                 }
                 catch (Exception e)
                 {

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractVirtualHostNode.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractVirtualHostNode.java?rev=1625039&r1=1625038&r2=1625039&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractVirtualHostNode.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractVirtualHostNode.java Mon Sep 15 14:16:31 2014
@@ -191,7 +191,7 @@ public abstract class AbstractVirtualHos
         deleteVirtualHostIfExists();
         close();
         deleted();
-        getConfigurationStore().onDelete();
+        getConfigurationStore().onDelete(this);
     }
 
     protected void deleteVirtualHostIfExists()

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecovererTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecovererTest.java?rev=1625039&r1=1625038&r2=1625039&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecovererTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecovererTest.java Mon Sep 15 14:16:31 2014
@@ -351,7 +351,7 @@ public class BrokerStoreUpgraderAndRecov
         }
 
         @Override
-        public void onDelete()
+        public void onDelete(ConfiguredObject<?> parent)
         {
         }
 

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=1625039&r1=1625038&r2=1625039&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:16:31 2014
@@ -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 ext
         _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());
 
     }

Modified: qpid/trunk/qpid/java/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyConfigurationStore.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyConfigurationStore.java?rev=1625039&r1=1625038&r2=1625039&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyConfigurationStore.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyConfigurationStore.java Mon Sep 15 14:16:31 2014
@@ -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.ResultSet;
@@ -31,6 +32,7 @@ import org.apache.log4j.Logger;
 
 import org.apache.qpid.server.model.ConfiguredObject;
 import org.apache.qpid.server.store.*;
+import org.apache.qpid.util.FileUtils;
 
 /**
  * Implementation of a DurableConfigurationStore backed by Apache Derby
@@ -139,7 +141,7 @@ public class DerbyConfigurationStore ext
     }
 
     @Override
-    public void onDelete()
+    public void onDelete(ConfiguredObject<?> parent)
     {
         if (_providedMessageStore.isMessageStoreOpen())
         {
@@ -151,18 +153,19 @@ public class DerbyConfigurationStore ext
             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

Modified: qpid/trunk/qpid/java/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyMessageStore.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyMessageStore.java?rev=1625039&r1=1625038&r2=1625039&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyMessageStore.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyMessageStore.java Mon Sep 15 14:16:31 2014
@@ -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 A
     }
 
     @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 A
             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

Modified: qpid/trunk/qpid/java/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyUtils.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyUtils.java?rev=1625039&r1=1625038&r2=1625039&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyUtils.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyUtils.java Mon Sep 15 14:16:31 2014
@@ -101,26 +101,6 @@ public class DerbyUtils
         }
     }
 
-    public static void deleteDatabaseLocation(String storeLocation)
-    {
-        if (MEMORY_STORE_LOCATION.equals(storeLocation))
-        {
-            return;
-        }
-
-        if (storeLocation != null)
-        {
-            File location = new File(storeLocation);
-            if (location.exists())
-            {
-                if (!FileUtils.delete(location, true))
-                {
-                    throw new StoreException("Failed to delete the store at location : " + storeLocation);
-                }
-            }
-        }
-    }
-
     public static String getBlobAsString(ResultSet rs, int col) throws SQLException
     {
         Blob blob = rs.getBlob(col);

Modified: qpid/trunk/qpid/java/broker-plugins/derby-store/src/test/java/org/apache/qpid/server/store/derby/DerbyMessageStoreTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/derby-store/src/test/java/org/apache/qpid/server/store/derby/DerbyMessageStoreTest.java?rev=1625039&r1=1625038&r2=1625039&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/derby-store/src/test/java/org/apache/qpid/server/store/derby/DerbyMessageStoreTest.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/derby-store/src/test/java/org/apache/qpid/server/store/derby/DerbyMessageStoreTest.java Mon Sep 15 14:16:31 2014
@@ -57,7 +57,10 @@ public class DerbyMessageStoreTest exten
         getStore().closeMessageStore();
         assertTrue("Store does not exist at " + _storeLocation, location.exists());
 
-        getStore().onDelete();
+        DerbyVirtualHost mockVH = mock(DerbyVirtualHost.class);
+        when(mockVH.getStorePath()).thenReturn(_storeLocation);
+
+        getStore().onDelete(mockVH);
         assertFalse("Store exists at " + _storeLocation, location.exists());
     }
 

Modified: qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/test/java/org/apache/qpid/server/store/jdbc/JDBCMessageStoreTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/test/java/org/apache/qpid/server/store/jdbc/JDBCMessageStoreTest.java?rev=1625039&r1=1625038&r2=1625039&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/test/java/org/apache/qpid/server/store/jdbc/JDBCMessageStoreTest.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/test/java/org/apache/qpid/server/store/jdbc/JDBCMessageStoreTest.java Mon Sep 15 14:16:31 2014
@@ -59,7 +59,7 @@ public class JDBCMessageStoreTest extend
         assertTablesExist(expectedTables, true);
         getStore().closeMessageStore();
         assertTablesExist(expectedTables, true);
-        getStore().onDelete();
+        getStore().onDelete(mock(JDBCVirtualHost.class));
         assertTablesExist(expectedTables, false);
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org