diff --git a/.settings/edu.umd.cs.findbugs.core.prefs b/.settings/edu.umd.cs.findbugs.core.prefs index dcec386e3c069a44f793cedbb7effc88b885f077..d18c2f7f1a5303ffe60d11472e3c995368bea247 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 a5267aed1b2004ce63c1b5bf853617798b9b426d..7441b89bf3c5bed33867ef02359ff39d0b042b5f 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 162510ff4d2f04011498ba6920aae0c78347c6c8..0e4474577e1f49bc96e734c286b2d9e0363895e8 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 fc909882e2e6cf301d1a6e032e7fbc6e70a6790b..8029f1b8b2ec78381055ee42ac8f93341f9393e3 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;