From 469105fcdfc6ba99ec9f046ffdf3dc25e53de260 Mon Sep 17 00:00:00 2001 From: Nelson Tavares de Sousa <stu103017@mail.uni-kiel.de> Date: Tue, 25 Aug 2015 16:24:20 +0200 Subject: [PATCH] added a check, if any config instance is executed multiple times --- src/main/java/teetime/framework/Configuration.java | 13 +++++++++++-- src/main/java/teetime/framework/Execution.java | 8 ++++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/main/java/teetime/framework/Configuration.java b/src/main/java/teetime/framework/Configuration.java index 2c10587f..fb6270a0 100644 --- a/src/main/java/teetime/framework/Configuration.java +++ b/src/main/java/teetime/framework/Configuration.java @@ -31,6 +31,7 @@ public abstract class Configuration extends AbstractCompositeStage { private final IExceptionListenerFactory<?> factory; private final ConfigurationContext context; + private boolean initialized; private boolean executed; private Stage startStage; @@ -43,11 +44,19 @@ public abstract class Configuration extends AbstractCompositeStage { this.context = new ConfigurationContext(this); } - boolean isExecuted() { + boolean isInitialized() { + return initialized; + } + + void setInitialized(final boolean executed) { + this.initialized = executed; + } + + public boolean isExecuted() { return executed; } - void setExecuted(final boolean executed) { + public void setExecuted(final boolean executed) { this.executed = executed; } diff --git a/src/main/java/teetime/framework/Execution.java b/src/main/java/teetime/framework/Execution.java index e801ab6b..782f0ea2 100644 --- a/src/main/java/teetime/framework/Execution.java +++ b/src/main/java/teetime/framework/Execution.java @@ -62,10 +62,10 @@ public final class Execution<T extends Configuration> { public Execution(final T configuration, final boolean validationEnabled) { this.configuration = configuration; this.configurationContext = configuration.getContext(); - if (configuration.isExecuted()) { + if (configuration.isInitialized()) { throw new IllegalStateException("Configuration was already executed"); } - configuration.setExecuted(true); + configuration.setInitialized(true); if (validationEnabled) { validateStages(); } @@ -133,6 +133,10 @@ public final class Execution<T extends Configuration> { * @since 2.0 */ public void executeNonBlocking() { + if (configuration.isExecuted()) { + throw new IllegalStateException("Any configuration instance may only be executed once."); + } + configuration.setExecuted(true); configurationContext.executeConfiguration(); } -- GitLab