You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2016/02/01 18:49:05 UTC

[19/50] brooklyn-server git commit: Fix thread-safety in NonDeploymentManagementContext

Fix thread-safety in NonDeploymentManagementContext

Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/9fcdee9e
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/9fcdee9e
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/9fcdee9e

Branch: refs/heads/0.5.0
Commit: 9fcdee9eb93f43ae14cbdf3fac6e2deffbc69c01
Parents: 19938ce
Author: Aled Sage <al...@gmail.com>
Authored: Wed Apr 17 14:57:25 2013 +0100
Committer: Aled Sage <al...@gmail.com>
Committed: Wed Apr 17 14:57:25 2013 +0100

----------------------------------------------------------------------
 .../management/internal/NonDeploymentManagementContext.java | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/9fcdee9e/core/src/main/java/brooklyn/management/internal/NonDeploymentManagementContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/management/internal/NonDeploymentManagementContext.java b/core/src/main/java/brooklyn/management/internal/NonDeploymentManagementContext.java
index 9b915aa..f5fcb03 100644
--- a/core/src/main/java/brooklyn/management/internal/NonDeploymentManagementContext.java
+++ b/core/src/main/java/brooklyn/management/internal/NonDeploymentManagementContext.java
@@ -1,6 +1,7 @@
 package brooklyn.management.internal;
 
 import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.base.Preconditions.checkState;
 
 import java.net.URL;
 import java.util.Collection;
@@ -48,13 +49,13 @@ public class NonDeploymentManagementContext implements ManagementContextInternal
     }
     
     private final AbstractEntity entity;
-    private NonDeploymentManagementContextMode mode;
-    private ManagementContextInternal initialManagementContext;
+    private volatile NonDeploymentManagementContextMode mode;
+    private volatile ManagementContextInternal initialManagementContext;
     
     private final QueueingSubscriptionManager qsm;
     private final BasicSubscriptionContext subscriptionContext;
     private final NonDeploymentExecutionContext executionContext;
-    private NonDeploymentEntityManager entityManager;
+    private volatile NonDeploymentEntityManager entityManager;
 
     public NonDeploymentManagementContext(AbstractEntity entity, NonDeploymentManagementContextMode mode) {
         this.entity = checkNotNull(entity, "entity");
@@ -66,6 +67,7 @@ public class NonDeploymentManagementContext implements ManagementContextInternal
     }
     
     public void setManagementContext(ManagementContextInternal val) {
+        checkState(initialManagementContext == null || initialManagementContext == val, "Must not change initialManagementContext from %s to %s", initialManagementContext, val);
         this.initialManagementContext = checkNotNull(val, "initialManagementContext");
         this.entityManager = new NonDeploymentEntityManager(val);
     }
@@ -78,6 +80,7 @@ public class NonDeploymentManagementContext implements ManagementContextInternal
     public void setMode(NonDeploymentManagementContextMode mode) {
         this.mode = checkNotNull(mode, "mode");
     }
+    
     public NonDeploymentManagementContextMode getMode() {
         return mode;
     }