Repository: activemq-artemis
Updated Branches:
  refs/heads/2.6.x a108ad361 -> 6b50d76e4


ARTEMIS-2102 delete paging directory or table if address is removed

(cherry picked from commit 8f4bd7c6212a2410142ae31045a0bf878aeb0136)


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/6b50d76e
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/6b50d76e
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/6b50d76e

Branch: refs/heads/2.6.x
Commit: 6b50d76e4fc39dd4020d7480cc6c854bff0f6163
Parents: a108ad3
Author: yang wei <[email protected]>
Authored: Tue Oct 2 19:44:57 2018 +0800
Committer: Clebert Suconic <[email protected]>
Committed: Thu Oct 11 15:10:26 2018 -0400

----------------------------------------------------------------------
 .../jdbc/store/file/JDBCSequentialFile.java     | 30 +++++----
 .../file/JDBCSequentialFileFactoryDriver.java   | 13 +++-
 .../file/JDBCSequentialFileFactoryTest.java     | 26 ++++++++
 .../artemis/core/paging/PagingStore.java        |  2 +
 .../artemis/core/paging/PagingStoreFactory.java |  2 +
 .../core/paging/impl/PagingManagerImpl.java     |  1 +
 .../paging/impl/PagingStoreFactoryDatabase.java | 32 +++++++++
 .../core/paging/impl/PagingStoreFactoryNIO.java |  9 +++
 .../core/paging/impl/PagingStoreImpl.java       |  7 ++
 .../core/server/impl/ActiveMQServerImpl.java    | 13 ++++
 .../tests/integration/paging/PagingTest.java    | 69 ++++++++++++++++++++
 .../storage/PersistMultiThreadTest.java         |  4 ++
 .../core/paging/impl/PagingStoreImplTest.java   |  4 ++
 13 files changed, 199 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/6b50d76e/artemis-jdbc-store/src/main/java/org/apache/activemq/artemis/jdbc/store/file/JDBCSequentialFile.java
----------------------------------------------------------------------
diff --git 
a/artemis-jdbc-store/src/main/java/org/apache/activemq/artemis/jdbc/store/file/JDBCSequentialFile.java
 
b/artemis-jdbc-store/src/main/java/org/apache/activemq/artemis/jdbc/store/file/JDBCSequentialFile.java
index fec8eaf..0b88d9a 100644
--- 
a/artemis-jdbc-store/src/main/java/org/apache/activemq/artemis/jdbc/store/file/JDBCSequentialFile.java
+++ 
b/artemis-jdbc-store/src/main/java/org/apache/activemq/artemis/jdbc/store/file/JDBCSequentialFile.java
@@ -155,12 +155,12 @@ public class JDBCSequentialFile implements SequentialFile 
{
       }
    }
 
-   private synchronized int internalWrite(byte[] data, IOCallback callback) {
+   private synchronized int internalWrite(byte[] data, IOCallback callback, 
boolean append) {
       try {
          open();
          synchronized (writeLock) {
-            int noBytes = dbDriver.writeToFile(this, data);
-            seek(noBytes);
+            int noBytes = dbDriver.writeToFile(this, data, append);
+            seek(append ? writePosition + noBytes : noBytes);
             if (logger.isTraceEnabled()) {
                logger.trace("Write: ID: " + this.getId() + " FileName: " + 
this.getFileName() + size());
             }
@@ -177,18 +177,22 @@ public class JDBCSequentialFile implements SequentialFile 
{
    }
 
    public synchronized int internalWrite(ActiveMQBuffer buffer, IOCallback 
callback) {
+      return internalWrite(buffer, callback, true);
+   }
+
+   public synchronized int internalWrite(ActiveMQBuffer buffer, IOCallback 
callback, boolean append) {
       byte[] data = new byte[buffer.readableBytes()];
       buffer.readBytes(data);
-      return internalWrite(data, callback);
+      return internalWrite(data, callback, append);
    }
 
    private synchronized int internalWrite(ByteBuffer buffer, IOCallback 
callback) {
-      return internalWrite(buffer.array(), callback);
+      return internalWrite(buffer.array(), callback, true);
    }
 
-   private void scheduleWrite(final ActiveMQBuffer bytes, final IOCallback 
callback) {
+   private void scheduleWrite(final ActiveMQBuffer bytes, final IOCallback 
callback, boolean append) {
       executor.execute(() -> {
-         internalWrite(bytes, callback);
+         internalWrite(bytes, callback, append);
       });
    }
 
@@ -199,13 +203,17 @@ public class JDBCSequentialFile implements SequentialFile 
{
    }
 
    synchronized void seek(long noBytes) {
-      writePosition += noBytes;
+      writePosition = noBytes;
+   }
+
+   public void write(ActiveMQBuffer bytes, boolean sync, IOCallback callback, 
boolean append) throws Exception {
+      // We ignore sync since we schedule writes straight away.
+      scheduleWrite(bytes, callback, append);
    }
 
    @Override
    public void write(ActiveMQBuffer bytes, boolean sync, IOCallback callback) 
throws Exception {
-      // We ignore sync since we schedule writes straight away.
-      scheduleWrite(bytes, callback);
+      write(bytes, sync, callback, true);
    }
 
    @Override
@@ -217,7 +225,7 @@ public class JDBCSequentialFile implements SequentialFile {
    public void write(EncodingSupport bytes, boolean sync, IOCallback callback) 
throws Exception {
       ActiveMQBuffer data = ActiveMQBuffers.fixedBuffer(bytes.getEncodeSize());
       bytes.encode(data);
-      scheduleWrite(data, callback);
+      write(data, sync, callback, true);
    }
 
    @Override

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/6b50d76e/artemis-jdbc-store/src/main/java/org/apache/activemq/artemis/jdbc/store/file/JDBCSequentialFileFactoryDriver.java
----------------------------------------------------------------------
diff --git 
a/artemis-jdbc-store/src/main/java/org/apache/activemq/artemis/jdbc/store/file/JDBCSequentialFileFactoryDriver.java
 
b/artemis-jdbc-store/src/main/java/org/apache/activemq/artemis/jdbc/store/file/JDBCSequentialFileFactoryDriver.java
index e736dca..7d9aded 100644
--- 
a/artemis-jdbc-store/src/main/java/org/apache/activemq/artemis/jdbc/store/file/JDBCSequentialFileFactoryDriver.java
+++ 
b/artemis-jdbc-store/src/main/java/org/apache/activemq/artemis/jdbc/store/file/JDBCSequentialFileFactoryDriver.java
@@ -246,6 +246,10 @@ public class JDBCSequentialFileFactoryDriver extends 
AbstractJDBCDriver {
       }
    }
 
+   public int writeToFile(JDBCSequentialFile file, byte[] data) throws 
SQLException {
+      return writeToFile(file, data, true);
+   }
+
    /**
     * Persists data to this files associated database mapping.
     *
@@ -254,7 +258,7 @@ public class JDBCSequentialFileFactoryDriver extends 
AbstractJDBCDriver {
     * @return
     * @throws SQLException
     */
-   public int writeToFile(JDBCSequentialFile file, byte[] data) throws 
SQLException {
+   public int writeToFile(JDBCSequentialFile file, byte[] data, boolean 
append) throws SQLException {
       synchronized (connection) {
          connection.setAutoCommit(false);
          appendToLargeObject.setLong(1, file.getId());
@@ -266,7 +270,12 @@ public class JDBCSequentialFileFactoryDriver extends 
AbstractJDBCDriver {
                if (blob == null) {
                   blob = connection.createBlob();
                }
-               bytesWritten = blob.setBytes(blob.length() + 1, data);
+               if (append) {
+                  bytesWritten = blob.setBytes(blob.length() + 1, data);
+               } else {
+                  blob.truncate(0);
+                  bytesWritten = blob.setBytes(1, data);
+               }
                rs.updateBlob(1, blob);
                rs.updateRow();
             }

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/6b50d76e/artemis-jdbc-store/src/test/java/org/apache/activemq/artemis/jdbc/file/JDBCSequentialFileFactoryTest.java
----------------------------------------------------------------------
diff --git 
a/artemis-jdbc-store/src/test/java/org/apache/activemq/artemis/jdbc/file/JDBCSequentialFileFactoryTest.java
 
b/artemis-jdbc-store/src/test/java/org/apache/activemq/artemis/jdbc/file/JDBCSequentialFileFactoryTest.java
index a45b9a8..7b6dc39 100644
--- 
a/artemis-jdbc-store/src/test/java/org/apache/activemq/artemis/jdbc/file/JDBCSequentialFileFactoryTest.java
+++ 
b/artemis-jdbc-store/src/test/java/org/apache/activemq/artemis/jdbc/file/JDBCSequentialFileFactoryTest.java
@@ -202,6 +202,32 @@ public class JDBCSequentialFileFactoryTest {
    }
 
    @Test
+   public void testWriteToFile() throws Exception {
+      JDBCSequentialFile file = (JDBCSequentialFile) 
factory.createSequentialFile("test.txt");
+      file.open();
+
+      ActiveMQBuffer src = ActiveMQBuffers.fixedBuffer(1);
+      src.writeByte((byte)7);
+
+      file.internalWrite(src, null);
+      checkData(file, src);
+      assertEquals(1, file.size());
+      file.close();
+
+      file = (JDBCSequentialFile) factory.createSequentialFile("test.txt");
+      file.open();
+
+      int bufferSize = 1024;
+      src = ActiveMQBuffers.fixedBuffer(bufferSize);
+      for (int i = 0; i < bufferSize; i++) {
+         src.writeByte((byte)i);
+      }
+      file.internalWrite(src, null, false);
+      checkData(file, src);
+      assertEquals(bufferSize, file.size());
+   }
+
+   @Test
    public void testCopyFile() throws Exception {
       JDBCSequentialFile file = (JDBCSequentialFile) 
factory.createSequentialFile("test.txt");
       file.open();

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/6b50d76e/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/PagingStore.java
----------------------------------------------------------------------
diff --git 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/PagingStore.java
 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/PagingStore.java
index 4dd8bf8..38c59dc 100644
--- 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/PagingStore.java
+++ 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/PagingStore.java
@@ -184,4 +184,6 @@ public interface PagingStore extends ActiveMQComponent, 
RefCountMessageListener
     * This method will re-enable cleanup of pages. Notice that it will also 
start cleanup threads.
     */
    void enableCleanup();
+
+   void destroy() throws Exception;
 }

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/6b50d76e/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/PagingStoreFactory.java
----------------------------------------------------------------------
diff --git 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/PagingStoreFactory.java
 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/PagingStoreFactory.java
index 6cfaf20..ce31021 100644
--- 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/PagingStoreFactory.java
+++ 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/PagingStoreFactory.java
@@ -49,6 +49,8 @@ public interface PagingStoreFactory {
 
    SequentialFileFactory newFileFactory(SimpleString address) throws Exception;
 
+   void removeFileFactory(SequentialFileFactory fileFactory) throws Exception;
+
    void injectMonitor(FileStoreMonitor monitor) throws Exception;
 
    default ScheduledExecutorService getScheduledExecutor() {

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/6b50d76e/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PagingManagerImpl.java
----------------------------------------------------------------------
diff --git 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PagingManagerImpl.java
 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PagingManagerImpl.java
index 8893984..07f5ad7 100644
--- 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PagingManagerImpl.java
+++ 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PagingManagerImpl.java
@@ -317,6 +317,7 @@ public final class PagingManagerImpl implements 
PagingManager {
          PagingStore store = stores.remove(storeName);
          if (store != null) {
             store.stop();
+            store.destroy();
          }
       } finally {
          syncLock.readLock().unlock();

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/6b50d76e/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PagingStoreFactoryDatabase.java
----------------------------------------------------------------------
diff --git 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PagingStoreFactoryDatabase.java
 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PagingStoreFactoryDatabase.java
index 23a0bd3..6dc11f3 100644
--- 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PagingStoreFactoryDatabase.java
+++ 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PagingStoreFactoryDatabase.java
@@ -18,7 +18,9 @@ package org.apache.activemq.artemis.core.paging.impl;
 
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.concurrent.Executor;
 import java.util.concurrent.ScheduledExecutorService;
 
@@ -94,6 +96,8 @@ public class PagingStoreFactoryDatabase implements 
PagingStoreFactory {
 
    private final IOCriticalErrorListener criticalErrorListener;
 
+   private final Map<SequentialFileFactory, String> factoryToTableName;
+
    public PagingStoreFactoryDatabase(final DatabaseStorageConfiguration dbConf,
                                      final StorageManager storageManager,
                                      final long syncTimeout,
@@ -108,6 +112,7 @@ public class PagingStoreFactoryDatabase implements 
PagingStoreFactory {
       this.syncTimeout = syncTimeout;
       this.dbConf = dbConf;
       this.criticalErrorListener = critialErrorListener;
+      this.factoryToTableName = new HashMap<>();
       start();
    }
 
@@ -181,6 +186,32 @@ public class PagingStoreFactoryDatabase implements 
PagingStoreFactory {
    }
 
    @Override
+   public synchronized void removeFileFactory(SequentialFileFactory 
fileFactory) throws Exception {
+      ((JDBCSequentialFileFactory)fileFactory).destroy();
+      String tableName = factoryToTableName.remove(fileFactory);
+      if (tableName != null) {
+         SimpleString removeTableName = SimpleString.toSimpleString(tableName);
+         JDBCSequentialFile directoryList = (JDBCSequentialFile) 
pagingFactoryFileFactory.createSequentialFile(DIRECTORY_NAME);
+         directoryList.open();
+
+         int size = ((Long) directoryList.size()).intValue();
+         ActiveMQBuffer buffer = readActiveMQBuffer(directoryList, size);
+
+         ActiveMQBuffer writeBuffer = ActiveMQBuffers.fixedBuffer(size);
+
+         while (buffer.readableBytes() > 0) {
+            SimpleString table = buffer.readSimpleString();
+            if (!removeTableName.equals(table)) {
+               writeBuffer.writeSimpleString(table);
+            }
+         }
+
+         directoryList.write(writeBuffer, true, null, false);
+         directoryList.close();
+      }
+   }
+
+   @Override
    public void setPagingManager(final PagingManager pagingManager) {
       this.pagingManager = pagingManager;
    }
@@ -249,6 +280,7 @@ public class PagingStoreFactoryDatabase implements 
PagingStoreFactory {
       if (jdbcNetworkTimeout >= 0) {
          fileFactory.setNetworkTimeout(this.executorFactory.getExecutor(), 
jdbcNetworkTimeout);
       }
+      factoryToTableName.put(fileFactory, directoryName);
       return fileFactory;
    }
 

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/6b50d76e/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PagingStoreFactoryNIO.java
----------------------------------------------------------------------
diff --git 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PagingStoreFactoryNIO.java
 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PagingStoreFactoryNIO.java
index aa71c0e..b0cbbb3 100644
--- 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PagingStoreFactoryNIO.java
+++ 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PagingStoreFactoryNIO.java
@@ -45,6 +45,7 @@ import 
org.apache.activemq.artemis.core.server.files.FileStoreMonitor;
 import org.apache.activemq.artemis.core.settings.HierarchicalRepository;
 import org.apache.activemq.artemis.core.settings.impl.AddressSettings;
 import org.apache.activemq.artemis.utils.ExecutorFactory;
+import org.apache.activemq.artemis.utils.FileUtil;
 import org.apache.activemq.artemis.utils.UUIDGenerator;
 import org.apache.activemq.artemis.utils.actors.ArtemisExecutor;
 
@@ -174,6 +175,14 @@ public class PagingStoreFactoryNIO implements 
PagingStoreFactory {
    }
 
    @Override
+   public synchronized void removeFileFactory(SequentialFileFactory 
fileFactory) throws Exception {
+      File directory = fileFactory.getDirectory();
+      if (directory.exists()) {
+         FileUtil.deleteDirectory(directory);
+      }
+   }
+
+   @Override
    public void setPagingManager(final PagingManager pagingManager) {
       this.pagingManager = pagingManager;
    }

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/6b50d76e/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PagingStoreImpl.java
----------------------------------------------------------------------
diff --git 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PagingStoreImpl.java
 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PagingStoreImpl.java
index 1392cfc..00001cc 100644
--- 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PagingStoreImpl.java
+++ 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PagingStoreImpl.java
@@ -967,6 +967,13 @@ public class PagingStoreImpl implements PagingStore {
       return;
    }
 
+   @Override
+   public void destroy() throws Exception {
+      if (fileFactory != null) {
+         storeFactory.removeFileFactory(fileFactory);
+      }
+   }
+
    private static class FinishPageMessageOperation implements 
TransactionOperation {
 
       private final PageTransactionInfo pageTransaction;

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/6b50d76e/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java
----------------------------------------------------------------------
diff --git 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java
 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java
index be340ee..f8b46e2 100644
--- 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java
+++ 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java
@@ -2392,6 +2392,8 @@ public class ActiveMQServerImpl implements ActiveMQServer 
{
 
       JournalLoadInformation[] journalInfo = loadJournals();
 
+      removeExtraAddressStores();
+
       final ServerInfo dumper = new ServerInfo(this, pagingManager);
 
       long dumpInfoInterval = configuration.getServerDumpInterval();
@@ -3163,6 +3165,17 @@ public class ActiveMQServerImpl implements 
ActiveMQServer {
       }
    }
 
+   private void removeExtraAddressStores() throws Exception {
+      SimpleString[] storeNames = pagingManager.getStoreNames();
+      if (storeNames != null && storeNames.length > 0) {
+         for (SimpleString storeName : storeNames) {
+            if (getAddressInfo(storeName) == null) {
+               pagingManager.deletePageStore(storeName);
+            }
+         }
+      }
+   }
+
    private final class ActivationThread extends Thread {
 
       final Runnable runnable;

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/6b50d76e/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/paging/PagingTest.java
----------------------------------------------------------------------
diff --git 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/paging/PagingTest.java
 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/paging/PagingTest.java
index 13d8f08..65b5892 100644
--- 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/paging/PagingTest.java
+++ 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/paging/PagingTest.java
@@ -6220,6 +6220,75 @@ public class PagingTest extends ActiveMQTestBase {
       server.stop();
    }
 
+   @Test
+   public void testPagingStoreDestroyed() throws Exception {
+      clearDataRecreateServerDirs();
+
+      Configuration config = 
createDefaultInVMConfig().setJournalSyncNonTransactional(false);
+
+      server = createServer(true, config, PagingTest.PAGE_SIZE, 
PagingTest.PAGE_MAX);
+
+      server.start();
+
+      final int numberOfMessages = 5000;
+
+      locator = 
createInVMNonHALocator().setBlockOnNonDurableSend(true).setBlockOnDurableSend(true).setBlockOnAcknowledge(true);
+
+      sf = createSessionFactory(locator);
+
+      ClientSession session = sf.createSession(false, false, false);
+
+      session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
+
+      ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
+
+      ClientMessage message = null;
+
+      byte[] body = new byte[MESSAGE_SIZE];
+
+      ByteBuffer bb = ByteBuffer.wrap(body);
+
+      for (int j = 1; j <= MESSAGE_SIZE; j++) {
+         bb.put(getSamplebyte(j));
+      }
+
+      for (int i = 0; i < numberOfMessages; i++) {
+         message = session.createMessage(true);
+
+         ActiveMQBuffer bodyLocal = message.getBodyBuffer();
+
+         bodyLocal.writeBytes(body);
+
+         producer.send(message);
+         if (i % 1000 == 0) {
+            session.commit();
+         }
+      }
+      session.commit();
+      producer.close();
+      
assertTrue(Arrays.asList(server.getPagingManager().getStoreNames()).contains(PagingTest.ADDRESS));
+      
assertTrue(server.getPagingManager().getPageStore(PagingTest.ADDRESS).isPaging());
+
+      session.deleteQueue(PagingTest.ADDRESS);
+      session.close();
+      sf.close();
+      locator.close();
+      locator = null;
+      sf = null;
+      
assertFalse(Arrays.asList(server.getPagingManager().getStoreNames()).contains(PagingTest.ADDRESS));
+      // Ensure pagingStore is physically deleted
+      server.getPagingManager().reloadStores();
+      
assertFalse(Arrays.asList(server.getPagingManager().getStoreNames()).contains(PagingTest.ADDRESS));
+      server.stop();
+
+      server.start();
+      
assertFalse(Arrays.asList(server.getPagingManager().getStoreNames()).contains(PagingTest.ADDRESS));
+      // Ensure pagingStore is physically deleted
+      server.getPagingManager().reloadStores();
+      
assertFalse(Arrays.asList(server.getPagingManager().getStoreNames()).contains(PagingTest.ADDRESS));
+      server.stop();
+   }
+
    @Override
    protected Configuration createDefaultConfig(final int serverID, final 
boolean netty) throws Exception {
       Configuration configuration = super.createDefaultConfig(serverID, netty);

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/6b50d76e/tests/performance-tests/src/test/java/org/apache/activemq/artemis/tests/performance/storage/PersistMultiThreadTest.java
----------------------------------------------------------------------
diff --git 
a/tests/performance-tests/src/test/java/org/apache/activemq/artemis/tests/performance/storage/PersistMultiThreadTest.java
 
b/tests/performance-tests/src/test/java/org/apache/activemq/artemis/tests/performance/storage/PersistMultiThreadTest.java
index da9e8cd..813765d 100644
--- 
a/tests/performance-tests/src/test/java/org/apache/activemq/artemis/tests/performance/storage/PersistMultiThreadTest.java
+++ 
b/tests/performance-tests/src/test/java/org/apache/activemq/artemis/tests/performance/storage/PersistMultiThreadTest.java
@@ -469,5 +469,9 @@ public class PersistMultiThreadTest extends 
ActiveMQTestBase {
       public boolean checkReleasedMemory() {
          return true;
       }
+
+      @Override
+      public void destroy() throws Exception {
+      }
    }
 }

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/6b50d76e/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/core/paging/impl/PagingStoreImplTest.java
----------------------------------------------------------------------
diff --git 
a/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/core/paging/impl/PagingStoreImplTest.java
 
b/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/core/paging/impl/PagingStoreImplTest.java
index d3a67e7..90725a2 100644
--- 
a/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/core/paging/impl/PagingStoreImplTest.java
+++ 
b/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/core/paging/impl/PagingStoreImplTest.java
@@ -803,6 +803,10 @@ public class PagingStoreImplTest extends ActiveMQTestBase {
       }
 
       @Override
+      public void removeFileFactory(SequentialFileFactory fileFactory) throws 
Exception {
+      }
+
+      @Override
       public PagingStore newStore(final SimpleString destinationName, final 
AddressSettings addressSettings) {
          return null;
       }

Reply via email to