Fix StateMachineInterceptor calls

- Due to a regression when new preStateChange method were
  added to pass on root machine, old method did not get
  called anymore. Now calling that as well and fixing
  some other things around it.
- Same changes for postStateChange.
- Fixes #633
This commit is contained in:
Janne Valkealahti
2019-03-11 11:17:13 +00:00
parent d0a13258cb
commit 53d6ddefa9
5 changed files with 99 additions and 80 deletions

View File

@@ -115,12 +115,6 @@ public class PersistStateMachineHandler extends LifecycleObjectSupport {
private class PersistingStateChangeInterceptor extends StateMachineInterceptorAdapter<String, String> {
@Override
public void preStateChange(State<String, String> state, Message<String> message,
Transition<String, String> transition, StateMachine<String, String> stateMachine) {
listeners.onPersist(state, message, transition, stateMachine);
}
@Override
public void preStateChange(State<String, String> state, Message<String> message,
Transition<String, String> transition, StateMachine<String, String> stateMachine,

View File

@@ -850,7 +850,8 @@ public class TasksHandler {
@Override
public void preStateChange(State<String, String> state, Message<String> message,
Transition<String, String> transition, StateMachine<String, String> stateMachine) {
Transition<String, String> transition, StateMachine<String, String> stateMachine,
StateMachine<String, String> rootStateMachine) {
// skip all other pseudostates than initial
if (state == null || (state.getPseudoState() != null && state.getPseudoState().getKind() != PseudoStateKind.INITIAL)) {
@@ -878,13 +879,6 @@ public class TasksHandler {
throw new StateMachineException("Error persisting", e);
}
}
@Override
public void preStateChange(State<String, String> state, Message<String> message,
Transition<String, String> transition, StateMachine<String, String> stateMachine,
StateMachine<String, String> rootStateMachine) {
preStateChange(state, message, transition, stateMachine);
}
}
/**