From 9f7e2f58572fb8abe22dea2bddac5a856fa95eaf Mon Sep 17 00:00:00 2001
From: Christian Wulf <chw@informatik.uni-kiel.de>
Date: Tue, 21 Apr 2015 16:55:09 +0200
Subject: [PATCH] added check for negative input in ObjectProducer

---
 .settings/edu.umd.cs.findbugs.core.prefs            | 2 +-
 src/main/java/teetime/stage/ObjectProducer.java     | 3 +++
 src/site/markdown/wiki                              | 2 +-
 src/test/java/teetime/stage/ObjectProducerTest.java | 8 ++++++++
 4 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/.settings/edu.umd.cs.findbugs.core.prefs b/.settings/edu.umd.cs.findbugs.core.prefs
index dcec386e..d18c2f7f 100644
--- a/.settings/edu.umd.cs.findbugs.core.prefs
+++ b/.settings/edu.umd.cs.findbugs.core.prefs
@@ -1,5 +1,5 @@
 #FindBugs User Preferences
-#Tue Apr 21 14:17:42 CEST 2015
+#Tue Apr 21 16:50:39 CEST 2015
 detector_threshold=3
 effort=max
 excludefilter0=.fbExcludeFilterFile|true
diff --git a/src/main/java/teetime/stage/ObjectProducer.java b/src/main/java/teetime/stage/ObjectProducer.java
index a5267aed..7441b89b 100644
--- a/src/main/java/teetime/stage/ObjectProducer.java
+++ b/src/main/java/teetime/stage/ObjectProducer.java
@@ -32,6 +32,9 @@ public final class ObjectProducer<T> extends AbstractProducerStage<T> {
 	 * @since 1.0
 	 */
 	public ObjectProducer(final long numInputObjects, final ConstructorClosure<T> inputObjectCreator) {
+		if (numInputObjects < 0) {
+			throw new IllegalArgumentException("numInputObjects must be non-negative.");
+		}
 		this.numInputObjects = numInputObjects;
 		this.inputObjectCreator = inputObjectCreator;
 	}
diff --git a/src/site/markdown/wiki b/src/site/markdown/wiki
index 162510ff..0e447457 160000
--- a/src/site/markdown/wiki
+++ b/src/site/markdown/wiki
@@ -1 +1 @@
-Subproject commit 162510ff4d2f04011498ba6920aae0c78347c6c8
+Subproject commit 0e4474577e1f49bc96e734c286b2d9e0363895e8
diff --git a/src/test/java/teetime/stage/ObjectProducerTest.java b/src/test/java/teetime/stage/ObjectProducerTest.java
index fc909882..8029f1b8 100644
--- a/src/test/java/teetime/stage/ObjectProducerTest.java
+++ b/src/test/java/teetime/stage/ObjectProducerTest.java
@@ -53,6 +53,14 @@ public class ObjectProducerTest {
 		assertThat(results, is(empty()));
 	}
 
+	@Test(expected = IllegalArgumentException.class)
+	public void producerShouldFailOnNegativeInput() {
+		final List<Integer> results = new ArrayList<Integer>();
+		final ObjectProducer<Integer> producer = new ObjectProducer<Integer>(-1, new Generator());
+
+		test(producer).and().receive(results).from(producer.getOutputPort()).start();
+	}
+
 	private static class Generator implements ConstructorClosure<Integer> {
 
 		private int counter = 1;
-- 
GitLab