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 b0cbbb38cd..ef1d7aa07c 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
@@ -152,7 +152,7 @@ public PageCursorProvider newCursorProvider(PagingStore 
store,
    @Override
    public synchronized PagingStore newStore(final SimpleString address, final 
AddressSettings settings) {
 
-      return new PagingStoreImpl(address, scheduledExecutor, syncTimeout, 
pagingManager, storageManager, null, this, address, settings, 
executorFactory.getExecutor(), syncNonTransactional);
+      return new PagingStoreImpl(address, scheduledExecutor, syncTimeout, 
pagingManager, storageManager, null, this, address, settings, 
executorFactory.getExecutor(), executorFactory.getExecutor(), 
syncNonTransactional);
    }
 
    @Override
@@ -223,7 +223,7 @@ public void setPagingManager(final PagingManager 
pagingManager) {
 
             AddressSettings settings = 
addressSettingsRepository.getMatch(address.toString());
 
-            PagingStore store = new PagingStoreImpl(address, 
scheduledExecutor, syncTimeout, pagingManager, storageManager, factory, this, 
address, settings, executorFactory.getExecutor(), syncNonTransactional);
+            PagingStore store = new PagingStoreImpl(address, 
scheduledExecutor, syncTimeout, pagingManager, storageManager, factory, this, 
address, settings, executorFactory.getExecutor(), 
executorFactory.getExecutor(), syncNonTransactional);
 
             storesReturn.add(store);
          }
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 89cd5b6982..203303053c 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
@@ -140,6 +140,21 @@ public PagingStoreImpl(final SimpleString address,
                           final AddressSettings addressSettings,
                           final ArtemisExecutor executor,
                           final boolean syncNonTransactional) {
+      this(address, scheduledExecutor, syncTimeout, pagingManager, 
storageManager, fileFactory, storeFactory, storeName, addressSettings, 
executor, executor, syncNonTransactional);
+   }
+
+   public PagingStoreImpl(final SimpleString address,
+                          final ScheduledExecutorService scheduledExecutor,
+                          final long syncTimeout,
+                          final PagingManager pagingManager,
+                          final StorageManager storageManager,
+                          final SequentialFileFactory fileFactory,
+                          final PagingStoreFactory storeFactory,
+                          final SimpleString storeName,
+                          final AddressSettings addressSettings,
+                          final ArtemisExecutor executor,
+                          final ArtemisExecutor ioExecutor,
+                          final boolean syncNonTransactional) {
       if (pagingManager == null) {
          throw new IllegalStateException("Paging Manager can't be null");
       }
@@ -172,7 +187,7 @@ public PagingStoreImpl(final SimpleString address,
       this.syncNonTransactional = syncNonTransactional;
 
       if (scheduledExecutor != null && syncTimeout > 0) {
-         this.syncTimer = new PageSyncTimer(this, scheduledExecutor, executor, 
syncTimeout);
+         this.syncTimer = new PageSyncTimer(this, scheduledExecutor, 
ioExecutor, syncTimeout);
       } else {
          this.syncTimer = null;
       }
@@ -275,22 +290,17 @@ public File getFolder() {
 
    @Override
    public boolean isPaging() {
-      lock.readLock().lock();
-
-      try {
-         if (addressFullMessagePolicy == AddressFullMessagePolicy.BLOCK) {
-            return false;
-         }
-         if (addressFullMessagePolicy == AddressFullMessagePolicy.FAIL) {
-            return isFull();
-         }
-         if (addressFullMessagePolicy == AddressFullMessagePolicy.DROP) {
-            return isFull();
-         }
-         return paging;
-      } finally {
-         lock.readLock().unlock();
+      AddressFullMessagePolicy policy = this.addressFullMessagePolicy;
+      if (policy == AddressFullMessagePolicy.BLOCK) {
+         return false;
+      }
+      if (policy == AddressFullMessagePolicy.FAIL) {
+         return isFull();
+      }
+      if (policy == AddressFullMessagePolicy.DROP) {
+         return isFull();
       }
+      return paging;
    }
 
    @Override


With regards,
Apache Git Services

Reply via email to