diff --git a/src/main/java/teetime/stage/ObjectProducer.java b/src/main/java/teetime/stage/ObjectProducer.java index 5e0c272ae74378ba108f9318bef9a358150ef843..a5267aed1b2004ce63c1b5bf853617798b9b426d 100644 --- a/src/main/java/teetime/stage/ObjectProducer.java +++ b/src/main/java/teetime/stage/ObjectProducer.java @@ -54,14 +54,11 @@ public final class ObjectProducer<T> extends AbstractProducerStage<T> { @Override protected void execute() { - T newObject = this.inputObjectCreator.create(); - this.numInputObjects--; - - outputPort.send(newObject); - - if (this.numInputObjects == 0) { - this.terminate(); + for (int i = 0; i < numInputObjects; i++) { + T newObject = this.inputObjectCreator.create(); + outputPort.send(newObject); } + this.terminate(); } } diff --git a/src/test/java/teetime/stage/ObjectProducerTest.java b/src/test/java/teetime/stage/ObjectProducerTest.java index 242060a629ad28f67b9677318bb5670f74ef95c4..fc909882e2e6cf301d1a6e032e7fbc6e70a6790b 100644 --- a/src/test/java/teetime/stage/ObjectProducerTest.java +++ b/src/test/java/teetime/stage/ObjectProducerTest.java @@ -43,6 +43,7 @@ public class ObjectProducerTest { assertThat(results, contains(1, 2, 3)); } + @Test public void producerShouldSendNothingIfSpecified() { final List<Integer> results = new ArrayList<Integer>(); final ObjectProducer<Integer> producer = new ObjectProducer<Integer>(0, new Generator());