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