From 9f21618da56e87c8152ca574c6c2e121c2be6ba9 Mon Sep 17 00:00:00 2001
From: Nelson Tavares de Sousa <stu103017@mail.uni-kiel.de>
Date: Tue, 5 May 2015 17:27:10 +0200
Subject: [PATCH] Quick fix for #151

---
 src/main/java/teetime/framework/AbstractStage.java            | 2 +-
 src/main/java/teetime/framework/RunnableConsumerStage.java    | 3 +++
 src/main/java/teetime/stage/MultipleInstanceOfFilter.java     | 1 -
 src/test/java/teetime/stage/MultipleInstanceOfFilterTest.java | 3 +++
 4 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/main/java/teetime/framework/AbstractStage.java b/src/main/java/teetime/framework/AbstractStage.java
index ab8d1dae..96b71bb4 100644
--- a/src/main/java/teetime/framework/AbstractStage.java
+++ b/src/main/java/teetime/framework/AbstractStage.java
@@ -58,10 +58,10 @@ public abstract class AbstractStage extends Stage {
 	public void onSignal(final ISignal signal, final InputPort<?> inputPort) {
 		if (!this.signalAlreadyReceived(signal, inputPort)) {
 			signal.trigger(this);
-
 			for (OutputPort<?> outputPort : outputPorts) {
 				outputPort.sendSignal(signal);
 			}
+
 		}
 	}
 
diff --git a/src/main/java/teetime/framework/RunnableConsumerStage.java b/src/main/java/teetime/framework/RunnableConsumerStage.java
index 5a8e3964..ded489eb 100644
--- a/src/main/java/teetime/framework/RunnableConsumerStage.java
+++ b/src/main/java/teetime/framework/RunnableConsumerStage.java
@@ -47,6 +47,9 @@ final class RunnableConsumerStage extends AbstractRunnableStage {
 		for (InputPort<?> inputPort : inputPorts) {
 			inputPort.waitForStartSignal();
 		}
+		for (InputPort<?> inputPort : inputPorts) {
+			inputPort.waitForStartSignal();
+		}
 		logger.trace("Starting..." + stage);
 	}
 
diff --git a/src/main/java/teetime/stage/MultipleInstanceOfFilter.java b/src/main/java/teetime/stage/MultipleInstanceOfFilter.java
index 46a363af..42f0d22b 100644
--- a/src/main/java/teetime/stage/MultipleInstanceOfFilter.java
+++ b/src/main/java/teetime/stage/MultipleInstanceOfFilter.java
@@ -42,7 +42,6 @@ public final class MultipleInstanceOfFilter<I> extends AbstractConsumerStage<I>
 	@SuppressWarnings("unchecked")
 	public void onStarting() throws Exception {
 		super.onStarting();
-
 		// We cache the map to avoid the creating of iterators during runtime
 		cachedOutputPortsMap = (Entry<Class<? extends I>, OutputPort<? super I>>[]) outputPortsMap.entrySet().toArray(new Entry<?, ?>[outputPortsMap.size()]);
 	}
diff --git a/src/test/java/teetime/stage/MultipleInstanceOfFilterTest.java b/src/test/java/teetime/stage/MultipleInstanceOfFilterTest.java
index 3654fedd..6221ba77 100644
--- a/src/test/java/teetime/stage/MultipleInstanceOfFilterTest.java
+++ b/src/test/java/teetime/stage/MultipleInstanceOfFilterTest.java
@@ -16,7 +16,9 @@
 package teetime.stage;
 
 import static org.hamcrest.Matchers.contains;
+import static org.hamcrest.Matchers.empty;
 import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.not;
 import static org.junit.Assert.assertThat;
 
 import java.util.ArrayList;
@@ -42,6 +44,7 @@ public class MultipleInstanceOfFilterTest {
 
 		StageTester.test(filter).and().send(input).to(filter.getInputPort()).and().receive(result).from(filter.getOutputPortForType(String.class)).start();
 
+		assertThat(result, is(not(empty())));
 		assertThat(result, contains("1", "2", "3"));
 	}
 
-- 
GitLab