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 2014/08/02 17:47:37 UTC

git commit: emit MEMBER_{ADDED,REMOVED} *after* removing the member

Repository: incubator-brooklyn
Updated Branches:
  refs/heads/master 9eccd5ba7 -> 2218b6853


emit MEMBER_{ADDED,REMOVED} *after* removing the member


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

Branch: refs/heads/master
Commit: 2218b6853b077d7e5c057d742e815ca118065039
Parents: 9eccd5b
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Sat Aug 2 11:45:03 2014 -0400
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Sat Aug 2 11:46:21 2014 -0400

----------------------------------------------------------------------
 .../main/java/brooklyn/entity/basic/AbstractGroupImpl.java    | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2218b685/core/src/main/java/brooklyn/entity/basic/AbstractGroupImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/AbstractGroupImpl.java b/core/src/main/java/brooklyn/entity/basic/AbstractGroupImpl.java
index 4aeb931..765d166 100644
--- a/core/src/main/java/brooklyn/entity/basic/AbstractGroupImpl.java
+++ b/core/src/main/java/brooklyn/entity/basic/AbstractGroupImpl.java
@@ -106,9 +106,10 @@ public abstract class AbstractGroupImpl extends AbstractEntity implements Abstra
             boolean changed = members.add(member);
             if (changed) {
                 log.debug("Group {} got new member {}", this, member);
-                emit(MEMBER_ADDED, member);
                 setAttribute(GROUP_SIZE, getCurrentSize());
                 setAttribute(GROUP_MEMBERS, getMembers());
+                // emit after the above so listeners can use getMembers() and getCurrentSize()
+                emit(MEMBER_ADDED, member);
 
                 if (Boolean.TRUE.equals(getConfig(MEMBER_DELEGATE_CHILDREN))) {
                     Optional<Entity> result = Iterables.tryFind(getChildren(), Predicates.equalTo(member));
@@ -137,9 +138,11 @@ public abstract class AbstractGroupImpl extends AbstractEntity implements Abstra
             boolean changed = (member != null && members.remove(member));
             if (changed) {
                 log.debug("Group {} lost member {}", this, member);
-                emit(MEMBER_REMOVED, member);
+                // TODO ideally the following 3 are synched
                 setAttribute(GROUP_SIZE, getCurrentSize());
                 setAttribute(GROUP_MEMBERS, getMembers());
+                // emit after the above so listeners can use getMembers() and getCurrentSize()
+                emit(MEMBER_REMOVED, member);
 
                 if (Boolean.TRUE.equals(getConfig(MEMBER_DELEGATE_CHILDREN))) {
                     Optional<Entity> result = Iterables.tryFind(getChildren(), new Predicate<Entity>() {