From 1f6379a3c5ad6be1abb87307495ead1bcdb3e342 Mon Sep 17 00:00:00 2001 From: Nelson Tavares de Sousa <ntd@informatik.uni-kiel.de> Date: Wed, 28 Jan 2015 11:23:33 +0100 Subject: [PATCH] moved related classes to own package; first prototype --- .../java/teetime/framework/AbstractConsumerStage.java | 7 ++++++- .../java/teetime/framework/AbstractProducerStage.java | 8 +++++++- src/main/java/teetime/framework/RunnableStage.java | 8 +++++++- .../framework/{ => exceptionHandling}/StageException.java | 6 ++++-- .../{ => exceptionHandling}/StageExceptionListener.java | 4 +++- 5 files changed, 27 insertions(+), 6 deletions(-) rename src/main/java/teetime/framework/{ => exceptionHandling}/StageException.java (84%) rename src/main/java/teetime/framework/{ => exceptionHandling}/StageExceptionListener.java (90%) diff --git a/src/main/java/teetime/framework/AbstractConsumerStage.java b/src/main/java/teetime/framework/AbstractConsumerStage.java index 1cc3bdb0..88605f5c 100644 --- a/src/main/java/teetime/framework/AbstractConsumerStage.java +++ b/src/main/java/teetime/framework/AbstractConsumerStage.java @@ -1,5 +1,6 @@ package teetime.framework; +import teetime.framework.exceptionHandling.StageException; import teetime.framework.idle.IdleStrategy; import teetime.framework.idle.YieldStrategy; @@ -20,7 +21,11 @@ public abstract class AbstractConsumerStage<I> extends AbstractStage { returnNoElement(); } - this.execute(element); + try { + this.execute(element); + } catch (Exception e) { + throw new StageException(e, this); + } } protected abstract void execute(I element); diff --git a/src/main/java/teetime/framework/AbstractProducerStage.java b/src/main/java/teetime/framework/AbstractProducerStage.java index e34f6705..2e22460f 100644 --- a/src/main/java/teetime/framework/AbstractProducerStage.java +++ b/src/main/java/teetime/framework/AbstractProducerStage.java @@ -1,5 +1,7 @@ package teetime.framework; +import teetime.framework.exceptionHandling.StageException; + /** * The <code>ProducerStage</code> produces at least one element at each execution.<br> * @@ -19,7 +21,11 @@ public abstract class AbstractProducerStage<O> extends AbstractStage { @Override public void executeWithPorts() { - this.execute(); + try { + this.execute(); + } catch (Exception e) { + throw new StageException(e, this); + } } @Override diff --git a/src/main/java/teetime/framework/RunnableStage.java b/src/main/java/teetime/framework/RunnableStage.java index b79b8d2d..ed98055c 100644 --- a/src/main/java/teetime/framework/RunnableStage.java +++ b/src/main/java/teetime/framework/RunnableStage.java @@ -3,6 +3,8 @@ package teetime.framework; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import teetime.framework.exceptionHandling.StageException; + abstract class RunnableStage implements Runnable { protected final Stage stage; @@ -22,7 +24,11 @@ abstract class RunnableStage implements Runnable { beforeStageExecution(); do { - executeStage(); + try { + executeStage(); + } catch (StageException e) { + // TODO: handle exception + } } while (!this.stage.shouldBeTerminated()); afterStageExecution(); diff --git a/src/main/java/teetime/framework/StageException.java b/src/main/java/teetime/framework/exceptionHandling/StageException.java similarity index 84% rename from src/main/java/teetime/framework/StageException.java rename to src/main/java/teetime/framework/exceptionHandling/StageException.java index 3f6c2b25..9c8ac69a 100644 --- a/src/main/java/teetime/framework/StageException.java +++ b/src/main/java/teetime/framework/exceptionHandling/StageException.java @@ -1,10 +1,12 @@ -package teetime.framework; +package teetime.framework.exceptionHandling; + +import teetime.framework.Stage; /** * Represents an Exception, which is thrown by stages, if uncatched exceptions are thrown. * */ -public class StageException extends Exception { +public class StageException extends RuntimeException { /** * Generated UID diff --git a/src/main/java/teetime/framework/StageExceptionListener.java b/src/main/java/teetime/framework/exceptionHandling/StageExceptionListener.java similarity index 90% rename from src/main/java/teetime/framework/StageExceptionListener.java rename to src/main/java/teetime/framework/exceptionHandling/StageExceptionListener.java index 5d43088d..f5ebc5d3 100644 --- a/src/main/java/teetime/framework/StageExceptionListener.java +++ b/src/main/java/teetime/framework/exceptionHandling/StageExceptionListener.java @@ -1,4 +1,6 @@ -package teetime.framework; +package teetime.framework.exceptionHandling; + +import teetime.framework.Stage; /** * Represent a minimalistic StageExceptionListener. Listener which extend from this one, must a least implement this functionality. -- GitLab