From 7ea6e5b1e62e6800f00ca30f064d6f39ec299946 Mon Sep 17 00:00:00 2001
From: Christian Wulf <chw@informatik.uni-kiel.de>
Date: Tue, 4 Nov 2014 07:41:58 +0100
Subject: [PATCH] fixed bug "merger does not pass start signal"

---
 src/main/java/teetime/stage/basic/merger/Merger.java | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/src/main/java/teetime/stage/basic/merger/Merger.java b/src/main/java/teetime/stage/basic/merger/Merger.java
index 6afda057..0634134c 100644
--- a/src/main/java/teetime/stage/basic/merger/Merger.java
+++ b/src/main/java/teetime/stage/basic/merger/Merger.java
@@ -54,19 +54,17 @@ public class Merger<T> extends AbstractStage {
 	public void onSignal(final ISignal signal, final InputPort<?> inputPort) {
 		this.logger.trace("Got signal: " + signal + " from input port: " + inputPort);
 
-		signal.trigger(this);
+		if (0 == finishedInputPorts) {
+			signal.trigger(this);
+		}
+		this.finishedInputPorts++;
 
 		if (this.finishedInputPorts == this.getInputPorts().length) {
 			this.outputPort.sendSignal(signal);
+			this.finishedInputPorts = 0;
 		}
 	}
 
-	@Override
-	public void onTerminating() throws Exception {
-		this.finishedInputPorts++;
-		super.onTerminating();
-	}
-
 	public IMergerStrategy<T> getStrategy() {
 		return this.strategy;
 	}
-- 
GitLab