You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by sj...@apache.org on 2015/01/12 18:21:44 UTC

[05/10] incubator-brooklyn git commit: Synchronise on non-null field in CumulusRDFApplication

Synchronise on non-null field in CumulusRDFApplication


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/6e339dec
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/6e339dec
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/6e339dec

Branch: refs/heads/master
Commit: 6e339dec2fabee6140c4f3900b4415d281b3a0dc
Parents: 3b403fd
Author: Sam Corbett <sa...@cloudsoftcorp.com>
Authored: Thu Jan 8 12:20:03 2015 +0000
Committer: Sam Corbett <sa...@cloudsoftcorp.com>
Committed: Fri Jan 9 13:56:40 2015 +0000

----------------------------------------------------------------------
 .../src/main/java/brooklyn/demo/CumulusRDFApplication.java  | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6e339dec/examples/simple-nosql-cluster/src/main/java/brooklyn/demo/CumulusRDFApplication.java
----------------------------------------------------------------------
diff --git a/examples/simple-nosql-cluster/src/main/java/brooklyn/demo/CumulusRDFApplication.java b/examples/simple-nosql-cluster/src/main/java/brooklyn/demo/CumulusRDFApplication.java
index 6e11e21..3379bd4 100644
--- a/examples/simple-nosql-cluster/src/main/java/brooklyn/demo/CumulusRDFApplication.java
+++ b/examples/simple-nosql-cluster/src/main/java/brooklyn/demo/CumulusRDFApplication.java
@@ -109,6 +109,7 @@ public class CumulusRDFApplication extends AbstractApplication {
     private Entity cassandra;
     private TomcatServer webapp;
     private HostAndPort endpoint;
+    private final Object endpointMutex = new Object();
 
     /**
      * Create the application entities:
@@ -160,9 +161,11 @@ public class CumulusRDFApplication extends AbstractApplication {
             public Void call(ConfigBag parameters) {
                 // Process the YAML template given in the application config
                 String url = Entities.getRequiredUrlConfig(CumulusRDFApplication.this, CUMULUS_RDF_CONFIG_URL);
-                Map<String, Object> config = MutableMap.<String, Object>of("cassandraHostname", endpoint.getHostText(), "cassandraThriftPort", endpoint.getPort());
+                Map<String, Object> config;
+                synchronized (endpointMutex) {
+                    config = MutableMap.<String, Object>of("cassandraHostname", endpoint.getHostText(), "cassandraThriftPort", endpoint.getPort());
+                }
                 String contents = TemplateProcessor.processTemplateContents(ResourceUtils.create(CumulusRDFApplication.this).getResourceAsString(url), config);
-
                 // Copy the file contents to the remote machine
                 return DynamicTasks.queue(SshEffectorTasks.put("/tmp/cumulus.yaml").contents(contents)).get();
             }
@@ -173,7 +176,7 @@ public class CumulusRDFApplication extends AbstractApplication {
             @Override
             public void onEvent(SensorEvent<String> event) {
                 if (Strings.isNonBlank(event.getValue())) {
-                    synchronized (endpoint) {
+                    synchronized (endpointMutex) {
                         String hostname = Entities.submit(CumulusRDFApplication.this, DependentConfiguration.attributeWhenReady(cassandra, CassandraDatacenter.HOSTNAME)).getUnchecked();
                         Integer thriftPort = Entities.submit(CumulusRDFApplication.this, DependentConfiguration.attributeWhenReady(cassandra, CassandraDatacenter.THRIFT_PORT)).getUnchecked();
                         HostAndPort current = HostAndPort.fromParts(hostname, thriftPort);