From d65eb8d5754eeb6bdb2284a9a8e45b0ee2eb5e3a Mon Sep 17 00:00:00 2001 From: Nelson Tavares de Sousa <stu103017@mail.uni-kiel.de> Date: Fri, 26 Jun 2015 13:53:47 +0200 Subject: [PATCH] added test; connectPorts only adds a producer to threadableStages, if it has not been added yet --- .../framework/ConfigurationContext.java | 4 +++- .../java/teetime/framework/ExecutionTest.java | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/main/java/teetime/framework/ConfigurationContext.java b/src/main/java/teetime/framework/ConfigurationContext.java index 444bafaa..483b1ecb 100644 --- a/src/main/java/teetime/framework/ConfigurationContext.java +++ b/src/main/java/teetime/framework/ConfigurationContext.java @@ -55,7 +55,9 @@ public final class ConfigurationContext { */ final <T> void connectPorts(final OutputPort<? extends T> sourcePort, final InputPort<T> targetPort, final int capacity) { if (sourcePort.getOwningStage().getInputPorts().length == 0) { - addThreadableStage(sourcePort.getOwningStage(), sourcePort.getOwningStage().getId()); + if (!threadableStages.containsKey(sourcePort.getOwningStage())) { + addThreadableStage(sourcePort.getOwningStage(), sourcePort.getOwningStage().getId()); + } } if (sourcePort.getPipe() != null || targetPort.getPipe() != null) { LOGGER.warn("Overwriting existing pipe while connecting stages " + diff --git a/src/test/java/teetime/framework/ExecutionTest.java b/src/test/java/teetime/framework/ExecutionTest.java index 028513cf..bc7d850c 100644 --- a/src/test/java/teetime/framework/ExecutionTest.java +++ b/src/test/java/teetime/framework/ExecutionTest.java @@ -176,4 +176,23 @@ public class ExecutionTest { } + @Test + public void threadNameing() { + NameConfig configuration = new NameConfig(); + Execution<NameConfig> execution = new Execution<NameConfig>(configuration); + assertThat(configuration.stageWithNamedThread.getOwningThread().getName(), is("TestName")); + } + + private class NameConfig extends Configuration { + + public InitialElementProducer<Object> stageWithNamedThread; + + public NameConfig() { + stageWithNamedThread = new InitialElementProducer<Object>(new Object()); + addThreadableStage(stageWithNamedThread, "TestName"); + connectPorts(stageWithNamedThread.getOutputPort(), new Sink().getInputPort()); + } + + } + } -- GitLab