From 12065de937e324d2b6bddea40cb26581f5b6943d Mon Sep 17 00:00:00 2001
From: Christian Wulf <chw@informatik.uni-kiel.de>
Date: Tue, 4 Nov 2014 06:40:28 +0100
Subject: [PATCH] Revert "added "throws exception" to signal method headers"

This reverts commit 6193418d255a34a18f41c35bf482b7767d4af85b.
---
 src/main/java/teetime/framework/AbstractStage.java    |  6 ++----
 .../java/teetime/framework/pipe/InterThreadPipe.java  |  2 +-
 .../teetime/framework/signal/OnStartingException.java | 11 -----------
 .../framework/signal/OnTerminatingException.java      |  7 -------
 .../java/teetime/framework/signal/StartingSignal.java |  6 +-----
 .../teetime/framework/signal/TerminatingSignal.java   |  6 +-----
 src/main/java/teetime/stage/Cache.java                |  4 ++--
 src/main/java/teetime/stage/CollectorSink.java        |  3 +--
 .../teetime/stage/ElementDelayMeasuringStage.java     |  3 +--
 .../stage/ElementThroughputMeasuringStage.java        |  3 +--
 src/main/java/teetime/stage/Relay.java                |  3 +--
 src/main/java/teetime/stage/basic/Delay.java          |  3 +--
 .../teetime/stage/basic/distributor/Distributor.java  |  9 +++++++++
 src/main/java/teetime/stage/basic/merger/Merger.java  |  5 ++---
 src/main/java/teetime/stage/io/Printer.java           |  6 ++----
 .../stage/stringBuffer/StringBufferFilter.java        |  5 ++---
 .../java/teetime/examples/loopStage/Countdown.java    |  5 ++---
 17 files changed, 29 insertions(+), 58 deletions(-)
 delete mode 100644 src/main/java/teetime/framework/signal/OnStartingException.java
 delete mode 100644 src/main/java/teetime/framework/signal/OnTerminatingException.java

diff --git a/src/main/java/teetime/framework/AbstractStage.java b/src/main/java/teetime/framework/AbstractStage.java
index f8e06976..33be2f0c 100644
--- a/src/main/java/teetime/framework/AbstractStage.java
+++ b/src/main/java/teetime/framework/AbstractStage.java
@@ -12,8 +12,6 @@ import org.slf4j.LoggerFactory;
 import teetime.framework.pipe.DummyPipe;
 import teetime.framework.pipe.IPipe;
 import teetime.framework.signal.ISignal;
-import teetime.framework.signal.OnStartingException;
-import teetime.framework.signal.OnTerminatingException;
 import teetime.framework.validation.InvalidPortConnection;
 
 public abstract class AbstractStage implements Stage {
@@ -119,14 +117,14 @@ public abstract class AbstractStage implements Stage {
 		this.validateOutputPorts(invalidPortConnections);
 	}
 
-	public void onStarting() throws OnStartingException { // NOPMD
+	public void onStarting() {
 		this.cachedInputPorts = this.inputPortList.toArray(new InputPort<?>[0]);
 		this.cachedOutputPorts = this.outputPortList.toArray(new OutputPort<?>[0]);
 
 		this.connectUnconnectedOutputPorts();
 	}
 
-	public void onTerminating() throws OnTerminatingException { // NOPMD
+	public void onTerminating() {
 		// empty default implementation
 	}
 
diff --git a/src/main/java/teetime/framework/pipe/InterThreadPipe.java b/src/main/java/teetime/framework/pipe/InterThreadPipe.java
index eb02e181..a38e5951 100644
--- a/src/main/java/teetime/framework/pipe/InterThreadPipe.java
+++ b/src/main/java/teetime/framework/pipe/InterThreadPipe.java
@@ -34,7 +34,7 @@ public abstract class InterThreadPipe extends AbstractPipe {
 	}
 
 	@Override
-	public void reportNewElement() {// NOPMD
+	public void reportNewElement() {
 		// do nothing
 	}
 }
diff --git a/src/main/java/teetime/framework/signal/OnStartingException.java b/src/main/java/teetime/framework/signal/OnStartingException.java
deleted file mode 100644
index 19e75a72..00000000
--- a/src/main/java/teetime/framework/signal/OnStartingException.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package teetime.framework.signal;
-
-public class OnStartingException extends Exception {
-
-	private static final long serialVersionUID = 2202821942516875502L;
-
-	public OnStartingException(final String message, final Exception cause) {
-		super(message, cause);
-	}
-
-}
diff --git a/src/main/java/teetime/framework/signal/OnTerminatingException.java b/src/main/java/teetime/framework/signal/OnTerminatingException.java
deleted file mode 100644
index 5cc30211..00000000
--- a/src/main/java/teetime/framework/signal/OnTerminatingException.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package teetime.framework.signal;
-
-public class OnTerminatingException extends Exception {
-
-	private static final long serialVersionUID = -3753319394964802310L;
-
-}
diff --git a/src/main/java/teetime/framework/signal/StartingSignal.java b/src/main/java/teetime/framework/signal/StartingSignal.java
index 89c164ec..d1b7aa54 100644
--- a/src/main/java/teetime/framework/signal/StartingSignal.java
+++ b/src/main/java/teetime/framework/signal/StartingSignal.java
@@ -6,11 +6,7 @@ public class StartingSignal implements ISignal {
 
 	@Override
 	public void trigger(final AbstractStage stage) {
-		try {
-			stage.onStarting();
-		} catch (OnStartingException e) {
-			throw new RuntimeException(e);
-		}
+		stage.onStarting();
 	}
 
 }
diff --git a/src/main/java/teetime/framework/signal/TerminatingSignal.java b/src/main/java/teetime/framework/signal/TerminatingSignal.java
index 19bc9299..0aba57ba 100644
--- a/src/main/java/teetime/framework/signal/TerminatingSignal.java
+++ b/src/main/java/teetime/framework/signal/TerminatingSignal.java
@@ -6,11 +6,7 @@ public class TerminatingSignal implements ISignal {
 
 	@Override
 	public void trigger(final AbstractStage stage) {
-		try {
-			stage.onTerminating();
-		} catch (OnTerminatingException e) {
-			throw new RuntimeException(e);
-		}
+		stage.onTerminating();
 	}
 
 }
diff --git a/src/main/java/teetime/stage/Cache.java b/src/main/java/teetime/stage/Cache.java
index d396330b..07b7d289 100644
--- a/src/main/java/teetime/stage/Cache.java
+++ b/src/main/java/teetime/stage/Cache.java
@@ -6,7 +6,6 @@ import java.util.concurrent.TimeUnit;
 
 import teetime.framework.ConsumerStage;
 import teetime.framework.OutputPort;
-import teetime.framework.signal.OnTerminatingException;
 import teetime.util.StopWatch;
 
 public class Cache<T> extends ConsumerStage<T> {
@@ -21,7 +20,8 @@ public class Cache<T> extends ConsumerStage<T> {
 	}
 
 	@Override
-	public void onTerminating() throws OnTerminatingException {
+	public void onTerminating() {
+		super.onTerminating();
 		this.logger.debug("Emitting " + this.cachedObjects.size() + " cached elements...");
 		StopWatch stopWatch = new StopWatch();
 		stopWatch.start();
diff --git a/src/main/java/teetime/stage/CollectorSink.java b/src/main/java/teetime/stage/CollectorSink.java
index 3a9ca380..f3b3875d 100644
--- a/src/main/java/teetime/stage/CollectorSink.java
+++ b/src/main/java/teetime/stage/CollectorSink.java
@@ -18,7 +18,6 @@ package teetime.stage;
 import java.util.List;
 
 import teetime.framework.ConsumerStage;
-import teetime.framework.signal.OnTerminatingException;
 
 /**
  * @author Christian Wulf
@@ -46,7 +45,7 @@ public class CollectorSink<T> extends ConsumerStage<T> {
 	}
 
 	@Override
-	public void onTerminating() throws OnTerminatingException {
+	public void onTerminating() {
 		super.onTerminating();
 		System.out.println("size: " + this.elements.size());
 	}
diff --git a/src/main/java/teetime/stage/ElementDelayMeasuringStage.java b/src/main/java/teetime/stage/ElementDelayMeasuringStage.java
index 2af7dcef..452f75e3 100644
--- a/src/main/java/teetime/stage/ElementDelayMeasuringStage.java
+++ b/src/main/java/teetime/stage/ElementDelayMeasuringStage.java
@@ -6,7 +6,6 @@ import java.util.List;
 import teetime.framework.ConsumerStage;
 import teetime.framework.InputPort;
 import teetime.framework.OutputPort;
-import teetime.framework.signal.OnStartingException;
 
 public class ElementDelayMeasuringStage<T> extends ConsumerStage<T> {
 
@@ -30,7 +29,7 @@ public class ElementDelayMeasuringStage<T> extends ConsumerStage<T> {
 	}
 
 	@Override
-	public void onStarting() throws OnStartingException {
+	public void onStarting() {
 		this.resetTimestamp(System.nanoTime());
 		super.onStarting();
 	}
diff --git a/src/main/java/teetime/stage/ElementThroughputMeasuringStage.java b/src/main/java/teetime/stage/ElementThroughputMeasuringStage.java
index 4d6da35d..ea36801a 100644
--- a/src/main/java/teetime/stage/ElementThroughputMeasuringStage.java
+++ b/src/main/java/teetime/stage/ElementThroughputMeasuringStage.java
@@ -7,7 +7,6 @@ import java.util.concurrent.TimeUnit;
 import teetime.framework.ConsumerStage;
 import teetime.framework.InputPort;
 import teetime.framework.OutputPort;
-import teetime.framework.signal.OnStartingException;
 
 public class ElementThroughputMeasuringStage<T> extends ConsumerStage<T> {
 
@@ -31,7 +30,7 @@ public class ElementThroughputMeasuringStage<T> extends ConsumerStage<T> {
 	}
 
 	@Override
-	public void onStarting() throws OnStartingException {
+	public void onStarting() {
 		this.resetTimestamp(System.nanoTime());
 		super.onStarting();
 	}
diff --git a/src/main/java/teetime/stage/Relay.java b/src/main/java/teetime/stage/Relay.java
index 6ca7d55a..144b34ea 100644
--- a/src/main/java/teetime/stage/Relay.java
+++ b/src/main/java/teetime/stage/Relay.java
@@ -3,7 +3,6 @@ package teetime.stage;
 import teetime.framework.InputPort;
 import teetime.framework.ProducerStage;
 import teetime.framework.pipe.InterThreadPipe;
-import teetime.framework.signal.OnStartingException;
 import teetime.framework.signal.TerminatingSignal;
 
 public class Relay<T> extends ProducerStage<T> {
@@ -26,7 +25,7 @@ public class Relay<T> extends ProducerStage<T> {
 	}
 
 	@Override
-	public void onStarting() throws OnStartingException {
+	public void onStarting() {
 		this.cachedCastedInputPipe = (InterThreadPipe) this.inputPort.getPipe();
 		super.onStarting();
 	}
diff --git a/src/main/java/teetime/stage/basic/Delay.java b/src/main/java/teetime/stage/basic/Delay.java
index 18c6db7f..6c0ecac5 100644
--- a/src/main/java/teetime/stage/basic/Delay.java
+++ b/src/main/java/teetime/stage/basic/Delay.java
@@ -6,7 +6,6 @@ import java.util.List;
 import teetime.framework.AbstractStage;
 import teetime.framework.InputPort;
 import teetime.framework.OutputPort;
-import teetime.framework.signal.OnTerminatingException;
 
 public class Delay<T> extends AbstractStage {
 
@@ -35,7 +34,7 @@ public class Delay<T> extends AbstractStage {
 	}
 
 	@Override
-	public void onTerminating() throws OnTerminatingException {
+	public void onTerminating() {
 		super.onTerminating();
 		while (!this.inputPort.getPipe().isEmpty()) {
 			this.executeWithPorts();
diff --git a/src/main/java/teetime/stage/basic/distributor/Distributor.java b/src/main/java/teetime/stage/basic/distributor/Distributor.java
index 3e4b59bd..b80c8e5e 100644
--- a/src/main/java/teetime/stage/basic/distributor/Distributor.java
+++ b/src/main/java/teetime/stage/basic/distributor/Distributor.java
@@ -37,6 +37,15 @@ public class Distributor<T> extends ConsumerStage<T> {
 		this.strategy.distribute((OutputPort<T>[]) this.getOutputPorts(), element);
 	}
 
+	@Override
+	public void onTerminating() {
+		super.onTerminating();
+		// for (OutputPort<T> op : this.outputPortList) {
+		// op.getPipe().close();
+		// System.out.println("End signal sent, size: " + op.getPipe().size());
+		// }
+	}
+
 	public OutputPort<T> getNewOutputPort() {
 		return this.createOutputPort();
 	}
diff --git a/src/main/java/teetime/stage/basic/merger/Merger.java b/src/main/java/teetime/stage/basic/merger/Merger.java
index 4cd5229f..870b22b9 100644
--- a/src/main/java/teetime/stage/basic/merger/Merger.java
+++ b/src/main/java/teetime/stage/basic/merger/Merger.java
@@ -20,7 +20,6 @@ import teetime.framework.AbstractStage;
 import teetime.framework.InputPort;
 import teetime.framework.OutputPort;
 import teetime.framework.signal.ISignal;
-import teetime.framework.signal.OnTerminatingException;
 
 /**
  *
@@ -63,9 +62,9 @@ public class Merger<T> extends AbstractStage {
 	}
 
 	@Override
-	public void onTerminating() throws OnTerminatingException {
-		this.finishedInputPorts++;
+	public void onTerminating() {
 		super.onTerminating();
+		this.finishedInputPorts++;
 	}
 
 	public IMergerStrategy<T> getStrategy() {
diff --git a/src/main/java/teetime/stage/io/Printer.java b/src/main/java/teetime/stage/io/Printer.java
index 2f273623..40ee69ee 100644
--- a/src/main/java/teetime/stage/io/Printer.java
+++ b/src/main/java/teetime/stage/io/Printer.java
@@ -21,8 +21,6 @@ import java.io.PrintStream;
 import java.io.UnsupportedEncodingException;
 
 import teetime.framework.ConsumerStage;
-import teetime.framework.signal.OnStartingException;
-import teetime.framework.signal.OnTerminatingException;
 
 /**
  * A filter to print objects to a configured stream
@@ -88,13 +86,13 @@ public class Printer<T> extends ConsumerStage<T> {
 	}
 
 	@Override
-	public void onStarting() throws OnStartingException {
+	public void onStarting() {
 		super.onStarting();
 		this.initializeStream();
 	}
 
 	@Override
-	public void onTerminating() throws OnTerminatingException {
+	public void onTerminating() {
 		this.closeStream();
 		super.onTerminating();
 	}
diff --git a/src/main/java/teetime/stage/stringBuffer/StringBufferFilter.java b/src/main/java/teetime/stage/stringBuffer/StringBufferFilter.java
index 8390619b..2cefc39d 100644
--- a/src/main/java/teetime/stage/stringBuffer/StringBufferFilter.java
+++ b/src/main/java/teetime/stage/stringBuffer/StringBufferFilter.java
@@ -20,13 +20,12 @@ import java.util.LinkedList;
 
 import teetime.framework.ConsumerStage;
 import teetime.framework.OutputPort;
-import teetime.framework.signal.OnStartingException;
 import teetime.stage.stringBuffer.handler.AbstractDataTypeHandler;
 import teetime.stage.stringBuffer.util.KiekerHashMap;
 
 /**
  * @author Christian Wulf
- *
+ * 
  * @since 1.10
  */
 public class StringBufferFilter<T> extends ConsumerStage<T> {
@@ -45,7 +44,7 @@ public class StringBufferFilter<T> extends ConsumerStage<T> {
 	}
 
 	@Override
-	public void onStarting() throws OnStartingException {
+	public void onStarting() {
 		for (final AbstractDataTypeHandler<?> handler : this.dataTypeHandlers) {
 			handler.setLogger(this.logger);
 			handler.setStringRepository(this.kiekerHashMap);
diff --git a/src/performancetest/java/teetime/examples/loopStage/Countdown.java b/src/performancetest/java/teetime/examples/loopStage/Countdown.java
index b0677ee5..f70e3eb6 100644
--- a/src/performancetest/java/teetime/examples/loopStage/Countdown.java
+++ b/src/performancetest/java/teetime/examples/loopStage/Countdown.java
@@ -3,7 +3,6 @@ package teetime.examples.loopStage;
 import teetime.framework.InputPort;
 import teetime.framework.OutputPort;
 import teetime.framework.ProducerStage;
-import teetime.framework.signal.OnStartingException;
 
 public class Countdown extends ProducerStage<Void> {
 
@@ -18,9 +17,9 @@ public class Countdown extends ProducerStage<Void> {
 	}
 
 	@Override
-	public void onStarting() throws OnStartingException {
-		super.onStarting();
+	public void onStarting() {
 		this.countdownInputPort.getPipe().add(this.initialCountdown);
+		super.onStarting();
 	}
 
 	@Override
-- 
GitLab