From f998bce462607c8929ed207d0a0af36fead00861 Mon Sep 17 00:00:00 2001 From: Nelson Tavares de Sousa <ntd@informatik.uni-kiel.de> Date: Fri, 30 Jan 2015 14:19:53 +0100 Subject: [PATCH] true kill the thread from now on; Added implementations for different listeners --- src/main/java/teetime/framework/RunnableStage.java | 2 +- .../exceptionHandling/IgnoringStageListener.java | 3 +-- .../exceptionHandling/LoggingStageListener.java | 13 +++++++++++++ .../exceptionHandling/StageExceptionListener.java | 2 +- .../exceptionHandling/TerminatingStageListener.java | 13 +++++++++++++ 5 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 src/main/java/teetime/framework/exceptionHandling/LoggingStageListener.java create mode 100644 src/main/java/teetime/framework/exceptionHandling/TerminatingStageListener.java diff --git a/src/main/java/teetime/framework/RunnableStage.java b/src/main/java/teetime/framework/RunnableStage.java index 3acf6db5..4489bc2d 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 c8541006..4aa1feda 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 00000000..9b1adaa9 --- /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 81e0fd78..671d9a37 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 00000000..a174fe88 --- /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; + } + +} -- GitLab