From bddf4b481337e262239b3e1111d2c0645db5037a Mon Sep 17 00:00:00 2001
From: Nelson Tavares de Sousa <ntd@informatik.uni-kiel.de>
Date: Fri, 30 Jan 2015 15:25:02 +0100
Subject: [PATCH] added mechanism, which kills the whole analysis execution

---
 src/main/java/teetime/framework/RunnableStage.java | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/main/java/teetime/framework/RunnableStage.java b/src/main/java/teetime/framework/RunnableStage.java
index 229e1d5b..514d8c18 100644
--- a/src/main/java/teetime/framework/RunnableStage.java
+++ b/src/main/java/teetime/framework/RunnableStage.java
@@ -23,7 +23,7 @@ abstract class RunnableStage implements Runnable {
 	@Override
 	public final void run() {
 		this.logger.debug("Executing runnable stage...");
-
+		boolean failed = false;
 		try {
 			beforeStageExecution();
 
@@ -33,6 +33,7 @@ abstract class RunnableStage implements Runnable {
 				} catch (StageException e) {
 					if (this.listener.onStageException(e, e.getThrowingStage()) == FurtherExecution.TERMINATE) {
 						this.stage.terminate();
+						failed = true;
 					}
 				}
 			} while (!this.stage.shouldBeTerminated());
@@ -48,6 +49,9 @@ abstract class RunnableStage implements Runnable {
 		}
 
 		this.logger.debug("Finished runnable stage. (" + this.stage.getId() + ")");
+		if (failed) {
+			throw new IllegalStateException("Terminated by StageExceptionListener");
+		}
 	}
 
 	protected abstract void beforeStageExecution();
-- 
GitLab