You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by sv...@apache.org on 2015/10/20 17:51:42 UTC
[1/2] incubator-brooklyn git commit: Prevent DynamicCluster NPE when
subclasses have not called super.init()
Repository: incubator-brooklyn
Updated Branches:
refs/heads/master c2494dce8 -> f29b3fb10
Prevent DynamicCluster NPE when subclasses have not called super.init()
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/a8f191f7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/a8f191f7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/a8f191f7
Branch: refs/heads/master
Commit: a8f191f71f1b08c5c0888761c66436184655879c
Parents: c2494dc
Author: Sam Corbett <sa...@cloudsoftcorp.com>
Authored: Tue Oct 20 13:11:05 2015 +0100
Committer: Sam Corbett <sa...@cloudsoftcorp.com>
Committed: Tue Oct 20 13:11:05 2015 +0100
----------------------------------------------------------------------
.../entity/group/DynamicClusterImpl.java | 20 +++++++++++++++-----
.../nosql/mongodb/MongoDBReplicaSetImpl.java | 1 +
2 files changed, 16 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a8f191f7/core/src/main/java/org/apache/brooklyn/entity/group/DynamicClusterImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/entity/group/DynamicClusterImpl.java b/core/src/main/java/org/apache/brooklyn/entity/group/DynamicClusterImpl.java
index 51708da..ac79dd6 100644
--- a/core/src/main/java/org/apache/brooklyn/entity/group/DynamicClusterImpl.java
+++ b/core/src/main/java/org/apache/brooklyn/entity/group/DynamicClusterImpl.java
@@ -170,7 +170,15 @@ public class DynamicClusterImpl extends AbstractGroupImpl implements DynamicClus
@Override
public void init() {
super.init();
- sensors().set(NEXT_CLUSTER_MEMBER_ID, new NextClusterMemberIdSupplier());
+ initialiseMemberId();
+ }
+
+ private void initialiseMemberId() {
+ synchronized (mutex) {
+ if (sensors().get(NEXT_CLUSTER_MEMBER_ID) == null) {
+ sensors().set(NEXT_CLUSTER_MEMBER_ID, new NextClusterMemberIdSupplier());
+ }
+ }
}
@Override
@@ -778,11 +786,13 @@ public class DynamicClusterImpl extends AbstractGroupImpl implements DynamicClus
}
@Override
- public Entity addNode(Location loc, Map<?,?> extraFlags) {
- Map<?,?> createFlags = MutableMap.builder()
+ public Entity addNode(Location loc, Map<?, ?> extraFlags) {
+ // In case subclasses are foolish and do not call super.init() when overriding.
+ initialiseMemberId();
+ Map<?, ?> createFlags = MutableMap.builder()
.putAll(getCustomChildFlags())
.putAll(extraFlags)
- .put(CLUSTER_MEMBER_ID, getAttribute(NEXT_CLUSTER_MEMBER_ID).get())
+ .put(CLUSTER_MEMBER_ID, sensors().get(NEXT_CLUSTER_MEMBER_ID).get())
.build();
if (LOG.isDebugEnabled()) {
LOG.debug("Creating and adding a node to cluster {}({}) with properties {}", new Object[] { this, getId(), createFlags });
@@ -797,7 +807,7 @@ public class DynamicClusterImpl extends AbstractGroupImpl implements DynamicClus
// Continue to call manage(), because some uses of NodeFactory (in tests) still instantiate the
// entity via its constructor
Entities.manage(entity);
-
+
addMember(entity);
return entity;
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a8f191f7/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/mongodb/MongoDBReplicaSetImpl.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/mongodb/MongoDBReplicaSetImpl.java b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/mongodb/MongoDBReplicaSetImpl.java
index bb29c8b..1a80c3a 100644
--- a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/mongodb/MongoDBReplicaSetImpl.java
+++ b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/mongodb/MongoDBReplicaSetImpl.java
@@ -137,6 +137,7 @@ public class MongoDBReplicaSetImpl extends DynamicClusterImpl implements MongoDB
@Override
public void init() {
+ super.init();
enrichers().add(Enrichers.builder()
.aggregating(MongoDBAuthenticationMixins.ROOT_USERNAME)
.publishing(MongoDBAuthenticationMixins.ROOT_USERNAME)
[2/2] incubator-brooklyn git commit: This closes #973
Posted by sv...@apache.org.
This closes #973
Prevent DynamicCluster NPE when subclasses have not called super.init()
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/f29b3fb1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/f29b3fb1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/f29b3fb1
Branch: refs/heads/master
Commit: f29b3fb10b19fe45d07d488c26c38ef6fefb6b1a
Parents: c2494dc a8f191f
Author: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Authored: Tue Oct 20 18:51:03 2015 +0300
Committer: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Committed: Tue Oct 20 18:51:03 2015 +0300
----------------------------------------------------------------------
.../entity/group/DynamicClusterImpl.java | 20 +++++++++++++++-----
.../nosql/mongodb/MongoDBReplicaSetImpl.java | 1 +
2 files changed, 16 insertions(+), 5 deletions(-)
----------------------------------------------------------------------