From 150c91e4ed7e64dd4767ddb95061ae7f72b078c2 Mon Sep 17 00:00:00 2001
From: Nelson Tavares de Sousa <ntd@informatik.uni-kiel.de>
Date: Wed, 18 Feb 2015 15:11:55 +0100
Subject: [PATCH] fixed bug, which didn't pass on signals if there is a 1:1
 relation

---
 .../java/teetime/stage/basic/merger/Merger.java   | 15 +++++++++------
 src/test/java/teetime/stage/WordCountingTest.java |  2 +-
 2 files changed, 10 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 c693b648..60a3e2e8 100644
--- a/src/main/java/teetime/stage/basic/merger/Merger.java
+++ b/src/main/java/teetime/stage/basic/merger/Merger.java
@@ -74,9 +74,10 @@ public final class Merger<T> extends AbstractStage {
 	 * @param inputPort
 	 *            The port which the signal was sent to
 	 */
+	@SuppressWarnings("unchecked")
 	@Override
 	public void onSignal(final ISignal signal, final InputPort<?> inputPort) {
-		this.logger.trace("Got signal: " + signal + " from input port: " + inputPort);
+		this.logger.info("Got signal: " + signal + " from input port: " + inputPort);
 
 		if (signalMap.containsKey(signal.getClass())) {
 			Set<InputPort<?>> set = signalMap.get(signal.getClass());
@@ -84,17 +85,19 @@ public final class Merger<T> extends AbstractStage {
 				this.logger.warn("Received more than one signal - " + signal + " - from input port: " + inputPort);
 			}
 
-			if (set.size() == this.getInputPorts().length) {
-				signal.trigger(this);
-				this.outputPort.sendSignal(signal);
-				signalMap.remove(signal.getClass());
-			}
 		} else {
 			Set<InputPort<?>> tempSet = new HashSet<InputPort<?>>();
 			tempSet.add(inputPort);
 			signalMap.put((Class<ISignal>) signal.getClass(), tempSet);
 		}
 
+		if (signalMap.get(signal.getClass()).size() == this.getInputPorts().length) {
+			System.out.println("SENT");
+			signal.trigger(this);
+			this.outputPort.sendSignal(signal);
+			signalMap.remove(signal.getClass());
+		}
+
 	}
 
 	public IMergerStrategy getMergerStrategy() {
diff --git a/src/test/java/teetime/stage/WordCountingTest.java b/src/test/java/teetime/stage/WordCountingTest.java
index 3f174850..6fec33e6 100644
--- a/src/test/java/teetime/stage/WordCountingTest.java
+++ b/src/test/java/teetime/stage/WordCountingTest.java
@@ -38,7 +38,7 @@ public class WordCountingTest {
 
 	@Test
 	public void test1() throws IOException {
-		int threads = 2;
+		int threads = 1;
 		WordCountingConfiguration wcc = new WordCountingConfiguration(threads, testFile, testFile);
 		Analysis analysis = new Analysis(wcc);
 		analysis.start();
-- 
GitLab