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