diff --git a/src/main/java/teetime/framework/RunnableStage.java b/src/main/java/teetime/framework/RunnableStage.java index 3acf6db53542fc8d7244f6d79e9b6ece6973f8e9..4489bc2d794aa39a3aa629271bb55c52698ab613 100644 --- a/src/main/java/teetime/framework/RunnableStage.java +++ b/src/main/java/teetime/framework/RunnableStage.java @@ -30,7 +30,7 @@ abstract class RunnableStage implements Runnable { try { executeStage(); } catch (StageException e) { - if (!this.listener.onStageException(e, e.getThrowingStage())) { + if (this.listener.onStageException(e, e.getThrowingStage())) { this.stage.terminate(); } } diff --git a/src/main/java/teetime/framework/exceptionHandling/IgnoringStageListener.java b/src/main/java/teetime/framework/exceptionHandling/IgnoringStageListener.java index c8541006c1951e9b066e3ecf3083e203ada6363d..4aa1feda46c962999b6e7856a7a24672b315bd08 100644 --- a/src/main/java/teetime/framework/exceptionHandling/IgnoringStageListener.java +++ b/src/main/java/teetime/framework/exceptionHandling/IgnoringStageListener.java @@ -6,11 +6,10 @@ public class IgnoringStageListener extends StageExceptionListener { public IgnoringStageListener() { super(); - // TODO Auto-generated constructor stub } @Override public boolean onStageException(final Exception e, final Stage throwingStage) { - return true; + return false; } } diff --git a/src/main/java/teetime/framework/exceptionHandling/LoggingStageListener.java b/src/main/java/teetime/framework/exceptionHandling/LoggingStageListener.java new file mode 100644 index 0000000000000000000000000000000000000000..9b1adaa91d938f1f3a7e1c670015b63391268906 --- /dev/null +++ b/src/main/java/teetime/framework/exceptionHandling/LoggingStageListener.java @@ -0,0 +1,13 @@ +package teetime.framework.exceptionHandling; + +import teetime.framework.Stage; + +public class LoggingStageListener extends StageExceptionListener { + + @Override + public boolean onStageException(final Exception e, final Stage throwingStage) { + logger.warn("Exception arised from" + throwingStage.getId(), e); + return false; + } + +} diff --git a/src/main/java/teetime/framework/exceptionHandling/StageExceptionListener.java b/src/main/java/teetime/framework/exceptionHandling/StageExceptionListener.java index 81e0fd78ec122eac3384c4cf2cb5f002a6aed627..671d9a3792b6a7d8813369738cccb547556ca1b1 100644 --- a/src/main/java/teetime/framework/exceptionHandling/StageExceptionListener.java +++ b/src/main/java/teetime/framework/exceptionHandling/StageExceptionListener.java @@ -28,7 +28,7 @@ public abstract class StageExceptionListener { * @param throwingStage * the stage, which has thrown the exception. * @return - * true, if the thread can continue with execution or false, if thread should be terminated + * true, if the thread should be terminated, false otherwise */ public abstract boolean onStageException(Exception e, Stage throwingStage); diff --git a/src/main/java/teetime/framework/exceptionHandling/TerminatingStageListener.java b/src/main/java/teetime/framework/exceptionHandling/TerminatingStageListener.java new file mode 100644 index 0000000000000000000000000000000000000000..a174fe8828e1c4a93cce97800fa8317aace6ebf8 --- /dev/null +++ b/src/main/java/teetime/framework/exceptionHandling/TerminatingStageListener.java @@ -0,0 +1,13 @@ +package teetime.framework.exceptionHandling; + +import teetime.framework.Stage; + +public class TerminatingStageListener extends StageExceptionListener { + + @Override + public boolean onStageException(final Exception e, final Stage throwingStage) { + logger.warn("Exception arised from" + throwingStage.getId(), e); + return true; + } + +}