You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by ri...@apache.org on 2014/06/01 22:15:26 UTC

[11/25] git commit: SoftwareProcess.rebind connect sensors improvements

SoftwareProcess.rebind connect sensors improvements

- connectSensors is called in a timer to avoid the “thundering herd”
  problem.
- but in the timer’s runnable any exceptions are not logged - they
  just go to stdout, so fixed that
- and also check if the entity is still managed before trying to
  do connectSensors


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

Branch: refs/heads/master
Commit: a03853e018b106a7a91b23321fc3444799299be7
Parents: f1f412b
Author: Aled Sage <al...@gmail.com>
Authored: Wed May 28 18:53:33 2014 +0100
Committer: Aled Sage <al...@gmail.com>
Committed: Fri May 30 10:24:38 2014 +0100

----------------------------------------------------------------------
 .../java/brooklyn/entity/basic/SoftwareProcessImpl.java | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a03853e0/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcessImpl.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcessImpl.java b/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcessImpl.java
index 0a40405..e2e76a2 100644
--- a/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcessImpl.java
+++ b/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcessImpl.java
@@ -30,6 +30,7 @@ import brooklyn.management.Task;
 import brooklyn.util.collections.MutableMap;
 import brooklyn.util.collections.MutableSet;
 import brooklyn.util.config.ConfigBag;
+import brooklyn.util.exceptions.Exceptions;
 import brooklyn.util.task.DynamicTasks;
 import brooklyn.util.task.Tasks;
 import brooklyn.util.time.CountdownTimer;
@@ -191,7 +192,16 @@ public abstract class SoftwareProcessImpl extends AbstractEntity implements Soft
             Timer timer = new Timer();
             timer.schedule(new TimerTask() {
                 @Override public void run() {
-                    connectSensors();
+                    try {
+                        if (getManagementSupport().isNoLongerManaged()) {
+                            log.debug("Entity {} no longer managed; ignoring scheduled connect sensors on rebind", SoftwareProcessImpl.this);
+                            return;
+                        }
+                        connectSensors();
+                    } catch (Throwable e) {
+                        log.warn("Problem connecting sensors on rebind of "+SoftwareProcessImpl.this, e);
+                        Exceptions.propagateIfFatal(e);
+                    }
                 }
             }, delay);
         }