From ac69fed4e78a9463c4e52dd010346c69d86e1268 Mon Sep 17 00:00:00 2001 From: Clebert Suconic Date: Wed, 19 Oct 2016 15:34:37 -0400 Subject: [PATCH] [ARTEMIS-708] small improvements on remove call from DelayedAddRedistributor --- .../artemis/core/server/impl/QueueImpl.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java index 9e610b2235..d515b3d189 100644 --- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java +++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java @@ -768,11 +768,7 @@ public class QueueImpl implements Queue { @Override public synchronized void addRedistributor(final long delay) { - if (redistributorFuture != null) { - redistributorFuture.cancel(false); - - futures.remove(redistributorFuture); - } + clearRedistributorFuture(); if (redistributor != null) { // Just prompt delivery @@ -792,6 +788,16 @@ public class QueueImpl implements Queue { } } + private void clearRedistributorFuture() { + ScheduledFuture future = redistributorFuture; + redistributorFuture = null; + if (future != null) { + future.cancel(false); + + futures.remove(future); + } + } + @Override public synchronized void cancelRedistributor() throws Exception { if (redistributor != null) { @@ -802,11 +808,7 @@ public class QueueImpl implements Queue { removeConsumer(redistributorToRemove); } - if (redistributorFuture != null) { - redistributorFuture.cancel(false); - - redistributorFuture = null; - } + clearRedistributorFuture(); } @Override @@ -2709,7 +2711,7 @@ public class QueueImpl implements Queue { synchronized (QueueImpl.this) { internalAddRedistributor(executor1); - futures.remove(redistributorFuture); + clearRedistributorFuture(); } } }