You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by ni...@apache.org on 2015/11/14 05:37:26 UTC
[4/6] zest-java git commit: ZEST-128 - Added unwinding of
UndeclaredThrowableException in TaskRunner,
to allow checked exceptions wrapping in Tasks.
ZEST-128 - Added unwinding of UndeclaredThrowableException in TaskRunner, to allow checked exceptions wrapping in Tasks.
Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/8214c84e
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/8214c84e
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/8214c84e
Branch: refs/heads/develop
Commit: 8214c84ec7f8e5481abfc615adea0588b5503d4e
Parents: 02491a3
Author: Niclas Hedhman <ni...@hedhman.org>
Authored: Sat Nov 14 11:15:19 2015 +0800
Committer: Niclas Hedhman <ni...@hedhman.org>
Committed: Sat Nov 14 11:15:19 2015 +0800
----------------------------------------------------------------------
.../org/apache/zest/library/scheduler/TaskRunner.java | 7 ++++++-
.../apache/zest/library/scheduler/schedule/Schedule.java | 10 +++++-----
.../library/scheduler/schedule/cron/CronSchedule.java | 2 +-
.../library/scheduler/schedule/once/OnceSchedule.java | 2 +-
.../scheduler/timeline/TimelineForScheduleConcern.java | 4 ++--
5 files changed, 15 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/zest-java/blob/8214c84e/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/TaskRunner.java
----------------------------------------------------------------------
diff --git a/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/TaskRunner.java b/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/TaskRunner.java
index 8beacee..f506129 100644
--- a/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/TaskRunner.java
+++ b/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/TaskRunner.java
@@ -55,7 +55,12 @@ public class TaskRunner
}
catch( RuntimeException ex )
{
- schedule.taskCompletedWithException( ex );
+ Throwable exception = ex;
+ while(exception instanceof UndeclaredThrowableException)
+ {
+ exception = ((UndeclaredThrowableException) ex).getUndeclaredThrowable();
+ }
+ schedule.taskCompletedWithException( exception );
schedule.exceptionCounter().set( schedule.exceptionCounter().get() + 1 );
}
schedule.executionCounter().set( schedule.executionCounter().get() + 1 );
http://git-wip-us.apache.org/repos/asf/zest-java/blob/8214c84e/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/schedule/Schedule.java
----------------------------------------------------------------------
diff --git a/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/schedule/Schedule.java b/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/schedule/Schedule.java
index d2da51b..7e9555f 100644
--- a/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/schedule/Schedule.java
+++ b/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/schedule/Schedule.java
@@ -18,14 +18,13 @@
*/
package org.apache.zest.library.scheduler.schedule;
+import org.apache.zest.api.association.Association;
import org.apache.zest.api.common.UseDefaults;
import org.apache.zest.api.entity.EntityComposite;
-import org.joda.time.DateTime;
-import org.apache.zest.api.association.Association;
-import org.apache.zest.api.entity.Identity;
import org.apache.zest.api.property.Immutable;
import org.apache.zest.api.property.Property;
import org.apache.zest.library.scheduler.Task;
+import org.joda.time.DateTime;
/**
* Represent the scheduling of a {@link Task}.
@@ -102,9 +101,10 @@ public interface Schedule extends EntityComposite
/**
* Called directly after the {@link org.apache.zest.library.scheduler.Task#run()} method has been completed but
* threw a RuntimeException.
- * @param ex
+ * @param ex The execption that was thrown in the Task. If the thrown Exception was an
+ * {@link java.lang.reflect.UndeclaredThrowableException} then the underlying exception is passed here.
*/
- void taskCompletedWithException( RuntimeException ex );
+ void taskCompletedWithException( Throwable ex );
/**
* Compute the next time this schedule is to be run.
http://git-wip-us.apache.org/repos/asf/zest-java/blob/8214c84e/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/schedule/cron/CronSchedule.java
----------------------------------------------------------------------
diff --git a/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/schedule/cron/CronSchedule.java b/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/schedule/cron/CronSchedule.java
index d137cb3..9036592 100644
--- a/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/schedule/cron/CronSchedule.java
+++ b/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/schedule/cron/CronSchedule.java
@@ -56,7 +56,7 @@ public interface CronSchedule
}
@Override
- public void taskCompletedWithException( RuntimeException ex )
+ public void taskCompletedWithException( Throwable ex )
{
running().set(false);
}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/8214c84e/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/schedule/once/OnceSchedule.java
----------------------------------------------------------------------
diff --git a/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/schedule/once/OnceSchedule.java b/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/schedule/once/OnceSchedule.java
index 66fdb21..ca31cf4 100644
--- a/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/schedule/once/OnceSchedule.java
+++ b/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/schedule/once/OnceSchedule.java
@@ -39,7 +39,7 @@ public interface OnceSchedule
}
@Override
- public void taskCompletedWithException( RuntimeException ex )
+ public void taskCompletedWithException( Throwable ex )
{
running().set( false );
}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/8214c84e/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/timeline/TimelineForScheduleConcern.java
----------------------------------------------------------------------
diff --git a/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/timeline/TimelineForScheduleConcern.java b/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/timeline/TimelineForScheduleConcern.java
index ff67025..6bb5c3e 100644
--- a/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/timeline/TimelineForScheduleConcern.java
+++ b/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/timeline/TimelineForScheduleConcern.java
@@ -53,7 +53,7 @@ public abstract class TimelineForScheduleConcern
}
@Override
- public void taskCompletedWithException( RuntimeException ex )
+ public void taskCompletedWithException( Throwable ex )
{
TimelineRecordStep step = TimelineRecordStep.FAILURE;
String details = "Exception occurred:" + getStackTrace( ex );
@@ -78,7 +78,7 @@ public abstract class TimelineForScheduleConcern
state.history().set( timelineRecords );
}
- private String getStackTrace( RuntimeException ex )
+ private String getStackTrace( Throwable ex )
{
ByteArrayOutputStream baos = new ByteArrayOutputStream( 1000 );
BufferedOutputStream out = new BufferedOutputStream( baos );