diff --git a/li.strolch.service/src/main/java/li/strolch/execution/command/ExecutionCommand.java b/li.strolch.service/src/main/java/li/strolch/execution/command/ExecutionCommand.java index 627542faf..83be420f0 100644 --- a/li.strolch.service/src/main/java/li/strolch/execution/command/ExecutionCommand.java +++ b/li.strolch.service/src/main/java/li/strolch/execution/command/ExecutionCommand.java @@ -1,5 +1,6 @@ package li.strolch.execution.command; +import static li.strolch.runtime.StrolchConstants.PolicyConstants.PARAM_ORDER; import static li.strolch.utils.helper.StringHelper.DASH; import java.util.Iterator; @@ -56,12 +57,16 @@ public abstract class ExecutionCommand extends Command implements TimeOrderingVi if (currentState == newState) return; - String type = rootElement.getType(); - String id = rootElement.getId(); - - Order order = tx().getOrderBy(type, id); - if (order == null) - return; + Order order = tx().getOrderByRelation(rootElement, PARAM_ORDER); + if (order == null) { + logger.warn("Did not find activity order by relation " + PARAM_ORDER + " for activity " + rootElement + .getLocator() + ", trying by Activity type and id"); + order = tx().getOrderBy(rootElement.getType(), rootElement.getId()); + if (order == null) { + logger.error("Could not find order by Activity type and id either, not updating order state!"); + return; + } + } order.setState(rootElement.getState()); diff --git a/li.strolch.service/src/main/java/li/strolch/execution/policy/ExecutionPolicy.java b/li.strolch.service/src/main/java/li/strolch/execution/policy/ExecutionPolicy.java index 430e12c83..7d1b7fcd1 100644 --- a/li.strolch.service/src/main/java/li/strolch/execution/policy/ExecutionPolicy.java +++ b/li.strolch.service/src/main/java/li/strolch/execution/policy/ExecutionPolicy.java @@ -206,4 +206,9 @@ public abstract class ExecutionPolicy extends StrolchPolicy { throws PrivilegeException, Exception { return getContainer().getPrivilegeHandler().runWithResult(StrolchConstants.SYSTEM_USER_AGENT, runnable); } + + @Override + public void undo() { + // do nothing + } } diff --git a/li.strolch.service/src/main/java/li/strolch/planning/ActivityCreationPolicy.java b/li.strolch.service/src/main/java/li/strolch/planning/ActivityCreationPolicy.java index e7e30d08a..4dae2e88a 100644 --- a/li.strolch.service/src/main/java/li/strolch/planning/ActivityCreationPolicy.java +++ b/li.strolch.service/src/main/java/li/strolch/planning/ActivityCreationPolicy.java @@ -1,6 +1,5 @@ package li.strolch.planning; -import li.strolch.agent.api.ComponentContainer; import li.strolch.model.Order; import li.strolch.model.activity.Activity; import li.strolch.persistence.api.StrolchTransaction; @@ -8,8 +7,8 @@ import li.strolch.policy.StrolchPolicy; public abstract class ActivityCreationPolicy extends StrolchPolicy { - public ActivityCreationPolicy(ComponentContainer container, StrolchTransaction tx) { - super(container, tx); + public ActivityCreationPolicy(StrolchTransaction tx) { + super(tx); } public abstract Activity create(Order order);