diff --git a/src/main/java/teetime/framework/Analysis.java b/src/main/java/teetime/framework/Analysis.java index a0c78ef9cdc2e2dee3d91d3702481ac9ec5ddafe..f1ca4827efb8924794bdf8627d41c1dc6c936d8d 100644 --- a/src/main/java/teetime/framework/Analysis.java +++ b/src/main/java/teetime/framework/Analysis.java @@ -28,6 +28,7 @@ import org.slf4j.LoggerFactory; import teetime.framework.exceptionHandling.AbstractExceptionListener; import teetime.framework.exceptionHandling.IExceptionListenerFactory; import teetime.framework.exceptionHandling.IgnoringExceptionListenerFactory; +import teetime.framework.signal.InitializingSignal; import teetime.framework.signal.ValidatingSignal; import teetime.framework.validation.AnalysisNotValidException; import teetime.util.Pair; @@ -142,22 +143,24 @@ public final class Analysis<T extends AnalysisConfiguration> implements Uncaught final RunnableProducerStage runnable = new RunnableProducerStage(stage); thread = createThread(runnable, stage.getId()); this.finiteProducerThreads.add(thread); + InitializingSignal initializingSignal = new InitializingSignal(); + stage.onSignal(initializingSignal, null); break; } case BY_INTERRUPT: { final RunnableProducerStage runnable = new RunnableProducerStage(stage); thread = createThread(runnable, stage.getId()); + InitializingSignal initializingSignal = new InitializingSignal(); + stage.onSignal(initializingSignal, null); this.infiniteProducerThreads.add(thread); break; } default: throw new IllegalStateException("Unhandled termination strategy: " + terminationStrategy); } - - // FIXME: remove, if this solves the #151 bug - // final Set<Stage> intraStages = traverseIntraStages(stage); - // final AbstractExceptionListener newListener = factory.createInstance(); - // initializeIntraStages(intraStages, thread, newListener); + final Set<Stage> intraStages = traverseIntraStages(stage); + final AbstractExceptionListener newListener = factory.createInstance(); + initializeIntraStages(intraStages, thread, newListener); } } @@ -173,11 +176,6 @@ public final class Analysis<T extends AnalysisConfiguration> implements Uncaught for (Stage intraStage : intraStages) { intraStage.setOwningThread(thread); intraStage.setExceptionHandler(newListener); - try { - intraStage.onInitializing(); - } catch (Exception e) { // NOPMD(generic framework catch) - throw new IllegalStateException("The following exception occurs within initializing the analysis:", e); - } } } diff --git a/src/main/java/teetime/framework/RunnableProducerStage.java b/src/main/java/teetime/framework/RunnableProducerStage.java index a9f2c9a43de2558da0fea7f5e6e8ee7d3a0960a6..2b7b556af36be9f5dd00b4c827c48dea1b831dc5 100644 --- a/src/main/java/teetime/framework/RunnableProducerStage.java +++ b/src/main/java/teetime/framework/RunnableProducerStage.java @@ -15,7 +15,6 @@ */ package teetime.framework; -import teetime.framework.signal.InitializingSignal; import teetime.framework.signal.StartingSignal; import teetime.framework.signal.TerminatingSignal; @@ -27,8 +26,6 @@ public final class RunnableProducerStage extends AbstractRunnableStage { @Override protected void beforeStageExecution(final Stage stage) { - InitializingSignal initializingSignal = new InitializingSignal(); - stage.onSignal(initializingSignal, null); final StartingSignal startingSignal = new StartingSignal(); stage.onSignal(startingSignal, null); }