Return-Path: X-Original-To: apmail-brooklyn-commits-archive@minotaur.apache.org Delivered-To: apmail-brooklyn-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 9BEF01755C for ; Thu, 19 Mar 2015 16:24:32 +0000 (UTC) Received: (qmail 63757 invoked by uid 500); 19 Mar 2015 16:24:32 -0000 Delivered-To: apmail-brooklyn-commits-archive@brooklyn.apache.org Received: (qmail 63734 invoked by uid 500); 19 Mar 2015 16:24:32 -0000 Mailing-List: contact commits-help@brooklyn.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@brooklyn.incubator.apache.org Delivered-To: mailing list commits@brooklyn.incubator.apache.org Received: (qmail 63725 invoked by uid 99); 19 Mar 2015 16:24:32 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 19 Mar 2015 16:24:32 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,T_RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO mail.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with SMTP; Thu, 19 Mar 2015 16:24:10 +0000 Received: (qmail 63574 invoked by uid 99); 19 Mar 2015 16:24:07 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 19 Mar 2015 16:24:07 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 61F62E192F; Thu, 19 Mar 2015 16:24:07 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: heneveld@apache.org To: commits@brooklyn.incubator.apache.org Date: Thu, 19 Mar 2015 16:24:07 -0000 Message-Id: <11ade3270f3b40b498a58bc65c0d2108@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [1/3] incubator-brooklyn git commit: group rescan should be triggered by rebind, but not be in critical rebind path X-Virus-Checked: Checked by ClamAV on apache.org Repository: incubator-brooklyn Updated Branches: refs/heads/master 3d73c9324 -> 2a18a79c7 group rescan should be triggered by rebind, but not be in critical rebind path (since it might unmanage things, esp in the DynamicMultiGroup subclass, which causes deadlock, as it can't unmanage until management start transition completes) Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/b15d2eb3 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/b15d2eb3 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/b15d2eb3 Branch: refs/heads/master Commit: b15d2eb39cacae090e404ab527f0c1b24b544689 Parents: 78072b2 Author: Alex Heneveld Authored: Thu Mar 19 16:03:41 2015 +0000 Committer: Alex Heneveld Committed: Thu Mar 19 16:03:41 2015 +0000 ---------------------------------------------------------------------- .../brooklyn/entity/basic/DynamicGroupImpl.java | 23 ++++++++++++++------ .../internal/EntityManagementSupport.java | 4 ++++ 2 files changed, 20 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b15d2eb3/core/src/main/java/brooklyn/entity/basic/DynamicGroupImpl.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/basic/DynamicGroupImpl.java b/core/src/main/java/brooklyn/entity/basic/DynamicGroupImpl.java index 5241d74..26bc06c 100644 --- a/core/src/main/java/brooklyn/entity/basic/DynamicGroupImpl.java +++ b/core/src/main/java/brooklyn/entity/basic/DynamicGroupImpl.java @@ -32,10 +32,12 @@ import brooklyn.entity.Entity; import brooklyn.event.Sensor; import brooklyn.event.SensorEvent; import brooklyn.event.SensorEventListener; +import brooklyn.management.Task; import brooklyn.management.internal.CollectionChangeListener; import brooklyn.management.internal.ManagementContextInternal; import brooklyn.util.GroovyJavaMethods; import brooklyn.util.exceptions.Exceptions; +import brooklyn.util.task.Tasks; import com.google.common.base.Predicate; import com.google.common.base.Predicates; @@ -163,13 +165,20 @@ public class DynamicGroupImpl extends AbstractGroupImpl implements DynamicGroup } setChangeListener = new MyEntitySetChangeListener(); ((ManagementContextInternal) getManagementContext()).addEntitySetListener(setChangeListener); - try { - rescanEntities(); - } catch (Exception e) { - log.warn("Error rescanning entities when rebinding; may be a group set against an unknown entity: "+e); - log.debug("Trace for rescan entities error", e); - Exceptions.propagateIfFatal(e); - } + Task rescan = Tasks.builder().name("rescan entities").body( + new Runnable() { + @Override + public void run() { + try { + rescanEntities(); + } catch (Exception e) { + log.warn("Error rescanning entities when rebinding; may be a group set against an unknown entity: "+e); + log.debug("Trace for rescan entities error", e); + Exceptions.propagateIfFatal(e); + } + } + }).build(); + getExecutionContext().submit(rescan); } @Override http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b15d2eb3/core/src/main/java/brooklyn/management/internal/EntityManagementSupport.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/management/internal/EntityManagementSupport.java b/core/src/main/java/brooklyn/management/internal/EntityManagementSupport.java index eb9a27f..ef9496c 100644 --- a/core/src/main/java/brooklyn/management/internal/EntityManagementSupport.java +++ b/core/src/main/java/brooklyn/management/internal/EntityManagementSupport.java @@ -468,4 +468,8 @@ public class EntityManagementSupport { } } + @Override + public String toString() { + return super.toString()+"["+(entity==null ? "null" : entity.getId())+"]"; + } }