BasicExecutionManager: catch-log-propagate exception

For scheduled tasks, make sure exception is logged.
By default, it's lost when using a ScheduledExecutor.

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

Branch: refs/heads/0.4.0
Commit: b92ed6fff0a34a02dc7ac7ec16907a5c55ea66f5
Parents: e7fb0d4
Author: Aled Sage <[email protected]>
Authored: Sat Oct 6 15:22:01 2012 +0100
Committer: Aled Sage <[email protected]>
Committed: Sat Oct 6 15:22:01 2012 +0100

----------------------------------------------------------------------
 .../src/main/java/brooklyn/util/task/BasicExecutionManager.java | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/b92ed6ff/core/src/main/java/brooklyn/util/task/BasicExecutionManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/util/task/BasicExecutionManager.java 
b/core/src/main/java/brooklyn/util/task/BasicExecutionManager.java
index d29d0e5..c625a7d 100644
--- a/core/src/main/java/brooklyn/util/task/BasicExecutionManager.java
+++ b/core/src/main/java/brooklyn/util/task/BasicExecutionManager.java
@@ -232,7 +232,10 @@ public class BasicExecutionManager implements 
ExecutionManager {
                                        Object result;
                                        try {
                                            result = oldJob.call();
-                                       } catch (Exception e) { throw 
Throwables.propagate(e); }
+                                       } catch (Exception e) {
+                                           log.warn("Error executing 
"+oldJob+" ("+task.getDescription()+")", e);
+                                           throw Throwables.propagate(e);
+                                   }
                                        task.runCount++;
                                        if (task.period!=null) {
                                                task.delay = task.period;

Reply via email to