diff --git a/pom.xml b/pom.xml index 998c3c3..2cd025f 100755 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ lm-lib de.extio lm-lib - 1.6.12 + 1.6.13 21 diff --git a/src/main/java/de/extio/lmlib/agent/BaseAgent.java b/src/main/java/de/extio/lmlib/agent/BaseAgent.java index 64563f4..6647c20 100644 --- a/src/main/java/de/extio/lmlib/agent/BaseAgent.java +++ b/src/main/java/de/extio/lmlib/agent/BaseAgent.java @@ -71,13 +71,13 @@ public interface BaseAgent { } default List execute(final Client client, final ExecutorService agentExecutorService, final AgentContext context) { - final var finishedSplits = Collections.synchronizedList(new ArrayList()); + final var splits = new ArrayList(); context.setNextAgent(null); this.preProcess(context); - final var splits = this.applyTemplate(context); + splits.addAll(this.applyTemplate(context)); final var tasks = new ArrayList>(splits.size()); for (final var split : splits) { tasks.add(CompletableFuture.runAsync(() -> { @@ -145,8 +145,6 @@ public interface BaseAgent { if (split.context().getAgentContextUpdateConsumer() != null) { split.context().getAgentContextUpdateConsumer().accept(split.context()); } - - finishedSplits.add(split); } catch (final Exception ex) { LOGGER.error("Error during agent execution", ex); @@ -157,13 +155,12 @@ public interface BaseAgent { CompletableFuture.allOf(tasks.toArray(new CompletableFuture[0])).join(); - var retContexts = finishedSplits + var retContexts = splits .stream() .filter(s -> !s.context().isError()) .sorted((s0, s1) -> Integer.compare(s0.index(), s1.index())) .map(Split::context) .collect(Collectors.toCollection(ArrayList::new)); - if (!retContexts.isEmpty()) { final var merged = this.merge(List.copyOf(retContexts)); if (merged != null) { @@ -177,7 +174,7 @@ public interface BaseAgent { retContexts.forEach(this::nextAgent); } - retContexts.addAll(finishedSplits.stream().filter(s -> s.context().isError()).map(s -> s.context()).toList()); + retContexts.addAll(splits.stream().filter(s -> s.context().isError()).map(s -> s.context()).toList()); return retContexts; }