You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by de...@apache.org on 2014/01/28 16:09:45 UTC

git commit: https://issues.apache.org/jira/browse/AMQ-4995 - more fixes

Updated Branches:
  refs/heads/trunk 55da9bc82 -> 713250f5f


https://issues.apache.org/jira/browse/AMQ-4995 - more fixes


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

Branch: refs/heads/trunk
Commit: 713250f5f0439e4f83de1550fe21068184f17f87
Parents: 55da9bc
Author: Dejan Bosanac <de...@nighttale.net>
Authored: Tue Jan 28 16:08:53 2014 +0100
Committer: Dejan Bosanac <de...@nighttale.net>
Committed: Tue Jan 28 16:08:53 2014 +0100

----------------------------------------------------------------------
 .../activemq/broker/region/AbstractRegion.java  | 25 +++++++++++++-------
 .../plugin/RuntimeConfigurationBroker.java      |  5 ++--
 2 files changed, 19 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq/blob/713250f5/activemq-broker/src/main/java/org/apache/activemq/broker/region/AbstractRegion.java
----------------------------------------------------------------------
diff --git a/activemq-broker/src/main/java/org/apache/activemq/broker/region/AbstractRegion.java b/activemq-broker/src/main/java/org/apache/activemq/broker/region/AbstractRegion.java
index 7f7b7e4..2d1171d 100755
--- a/activemq-broker/src/main/java/org/apache/activemq/broker/region/AbstractRegion.java
+++ b/activemq-broker/src/main/java/org/apache/activemq/broker/region/AbstractRegion.java
@@ -583,16 +583,23 @@ public abstract class AbstractRegion implements Region {
     }
 
     public void reapplyInterceptor() {
-        DestinationInterceptor destinationInterceptor = broker.getDestinationInterceptor();
-        Map<ActiveMQDestination, Destination> map = getDestinationMap();
-        for (ActiveMQDestination key : map.keySet()) {
-            Destination destination = map.get(key);
-            if (destination instanceof CompositeDestinationFilter) {
-                destination = ((CompositeDestinationFilter)destination).next;
+        destinationsLock.writeLock().lock();
+        try {
+            DestinationInterceptor destinationInterceptor = broker.getDestinationInterceptor();
+            Map<ActiveMQDestination, Destination> map = getDestinationMap();
+            for (ActiveMQDestination key : map.keySet()) {
+                Destination destination = map.get(key);
+                if (destination instanceof CompositeDestinationFilter) {
+                    destination = ((CompositeDestinationFilter) destination).next;
+                }
+                if (destinationInterceptor != null) {
+                    destination = destinationInterceptor.intercept(destination);
+                }
+                getDestinationMap().put(key, destination);
+                destinations.put(key, destination);
             }
-            destination = destinationInterceptor.intercept(destination);
-            getDestinationMap().put(key, destination);
-            destinations.put(key, destination);
+        } finally {
+            destinationsLock.writeLock().unlock();
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/activemq/blob/713250f5/activemq-runtime-config/src/main/java/org/apache/activemq/plugin/RuntimeConfigurationBroker.java
----------------------------------------------------------------------
diff --git a/activemq-runtime-config/src/main/java/org/apache/activemq/plugin/RuntimeConfigurationBroker.java b/activemq-runtime-config/src/main/java/org/apache/activemq/plugin/RuntimeConfigurationBroker.java
index 73c172d..b11b529 100644
--- a/activemq-runtime-config/src/main/java/org/apache/activemq/plugin/RuntimeConfigurationBroker.java
+++ b/activemq-runtime-config/src/main/java/org/apache/activemq/plugin/RuntimeConfigurationBroker.java
@@ -552,6 +552,7 @@ public class RuntimeConfigurationBroker extends BrokerFilter {
                 public void run() {
 
                     boolean updatedExistingInterceptor = false;
+                    RegionBroker regionBroker = (RegionBroker) getBrokerService().getRegionBroker();
 
                     for (DestinationInterceptor destinationInterceptor : getBrokerService().getDestinationInterceptors()) {
                         if (destinationInterceptor instanceof VirtualDestinationInterceptor) {
@@ -577,11 +578,11 @@ public class RuntimeConfigurationBroker extends BrokerFilter {
 
                         DestinationInterceptor[] destinationInterceptors = interceptorsList.toArray(new DestinationInterceptor[]{});
                         getBrokerService().setDestinationInterceptors(destinationInterceptors);
-                        RegionBroker regionBroker = (RegionBroker) getBrokerService().getRegionBroker();
+
                         ((CompositeDestinationInterceptor) regionBroker.getDestinationInterceptor()).setInterceptors(destinationInterceptors);
                         info("applied new: " + interceptorsList);
-                        regionBroker.reapplyInterceptor();
                     }
+                    regionBroker.reapplyInterceptor();
                 }
             });
         } else if (o instanceof DtoPolicyEntry) {