CAMEL-6485 performance improvement in DefaultCamelContext with thanks to Eric


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/5a7c7752
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/5a7c7752
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/5a7c7752

Branch: refs/heads/camel-2.11.x
Commit: 5a7c775209942aa8bd01cb87037a01932d9bef2f
Parents: ddeae97
Author: Willem Jiang <ningji...@apache.org>
Authored: Tue Jun 25 09:40:02 2013 +0800
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Tue Jun 25 11:05:51 2013 +0200

----------------------------------------------------------------------
 .../java/org/apache/camel/impl/DefaultCamelContext.java   | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/5a7c7752/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java 
b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
index b059e86..e386aff 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
@@ -2372,12 +2372,14 @@ public class DefaultCamelContext extends ServiceSupport 
implements ModelCamelCon
     }
 
     public ManagementStrategy getManagementStrategy() {
-        synchronized (managementStrategyInitialized) {
-            if (managementStrategyInitialized.compareAndSet(false, true)) {
-                managementStrategy = createManagementStrategy();
+        if (!managementStrategyInitialized.get()) {
+            synchronized (managementStrategyInitialized) {
+                if (managementStrategyInitialized.compareAndSet(false, true)) {
+                    managementStrategy = createManagementStrategy();
+                }
             }
-            return managementStrategy;
         }
+        return managementStrategy;
     }
 
     public void setManagementStrategy(ManagementStrategy managementStrategy) {

Reply via email to