diff --git a/src/main/java/teetime/framework/Analysis.java b/src/main/java/teetime/framework/Analysis.java index f77315e5a05a1cd2a5734ea783402dac0820b953..3156529382e1febae7819cc925d2bbca304bea58 100644 --- a/src/main/java/teetime/framework/Analysis.java +++ b/src/main/java/teetime/framework/Analysis.java @@ -93,31 +93,29 @@ public class Analysis implements UncaughtExceptionHandler { } switch (stage.getTerminationStrategy()) { case BY_SIGNAL: { - RunnableConsumerStage runnable = null; - newListener.setHeadStage(runnable); + RunnableConsumerStage runnable; if (stage instanceof AbstractConsumerStage<?>) { runnable = new RunnableConsumerStage(stage, ((AbstractConsumerStage<?>) stage).getIdleStrategy(), newListener); // FIXME remove this word-around } else { runnable = new RunnableConsumerStage(stage, newListener); } + newListener.setRunnableStage(runnable); final Thread thread = new Thread(runnable); stage.setOwningThread(thread); this.consumerThreads.add(thread); break; } case BY_SELF_DECISION: { - RunnableProducerStage runnable = null; - newListener.setHeadStage(runnable); - runnable = new RunnableProducerStage(stage, newListener); + RunnableProducerStage runnable = new RunnableProducerStage(stage, newListener); + newListener.setRunnableStage(runnable); final Thread thread = new Thread(runnable); stage.setOwningThread(thread); this.finiteProducerThreads.add(thread); break; } case BY_INTERRUPT: { - RunnableProducerStage runnable = null; - newListener.setHeadStage(runnable); - runnable = new RunnableProducerStage(stage, newListener); + RunnableProducerStage runnable = new RunnableProducerStage(stage, newListener); + newListener.setRunnableStage(runnable); final Thread thread = new Thread(runnable); stage.setOwningThread(thread); this.infiniteProducerThreads.add(thread); diff --git a/src/main/java/teetime/framework/RunnableStage.java b/src/main/java/teetime/framework/RunnableStage.java index 44fe489aca48848f78aed30530752e271513959a..6a8453bab06a09d5e7f686bc3d2cd162ad376b17 100644 --- a/src/main/java/teetime/framework/RunnableStage.java +++ b/src/main/java/teetime/framework/RunnableStage.java @@ -3,7 +3,6 @@ package teetime.framework; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import teetime.framework.exceptionHandling.DefaultListener; import teetime.framework.exceptionHandling.StageException; import teetime.framework.exceptionHandling.StageExceptionListener; @@ -14,13 +13,6 @@ public abstract class RunnableStage implements Runnable { protected final Logger logger; private final StageExceptionListener listener; - public RunnableStage(final Stage stage) { - this.stage = stage; - this.logger = LoggerFactory.getLogger(stage.getClass()); - this.listener = new DefaultListener(); - listener.setHeadStage(this); - } - public RunnableStage(final Stage stage, final StageExceptionListener exceptionListener) { this.stage = stage; this.logger = LoggerFactory.getLogger(stage.getClass()); diff --git a/src/main/java/teetime/framework/exceptionHandling/StageExceptionListener.java b/src/main/java/teetime/framework/exceptionHandling/StageExceptionListener.java index 5efc432f56767c70fe83ce5c2b7f538a7c884c7b..8283ebd2346e9bc85cb6dacb32092ddfa27ee09d 100644 --- a/src/main/java/teetime/framework/exceptionHandling/StageExceptionListener.java +++ b/src/main/java/teetime/framework/exceptionHandling/StageExceptionListener.java @@ -40,7 +40,7 @@ public abstract class StageExceptionListener { this.runnable.abortExecution(); } - public final void setHeadStage(final RunnableStage headStage) { - this.runnable = headStage; + public final void setRunnableStage(final RunnableStage runnableStage) { + this.runnable = runnableStage; } }