You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Recently I'm testing persistence support of the framework and I found this issue.
My testing is pretty much similar to this example Using StateMachinePersister except that I'm using a state machine with 2 orthogonal regions (named LEFT, RIGHT). It looks like below
I first start machine1 and then send these events: START, EL1, EL2 (in this order) to it. Now machine1.getState().getIds() give me the result [LR, L1, R1] (which is correct).
Then after transfering (persist/restore) the state of machine1 into machine2, I check the state of machine2 and receive the result [LR, L1, R1] (which is still correct).
Then I send ER1 to both machines then check the results. I realize that they are different:
machine1.getState().getIds() = [E]
machine2.getState().getIds() = [LR, L1, R2]
I don't know which one (machine1 or machine1) behave correctly (because I was asking this question a few days ago on stackoverflow . But it seems like the persister did not "fully transfer" the state from machine1 to machine2.
Debugging into the code, I see that JoinTracker does not get populated the correct state if the state machine is being restored from persistent context. Or in another word, the state of JoinTracker doesn't get persisted.
Hi, I'm new to Spring state machine.
Recently I'm testing persistence support of the framework and I found this issue.
My testing is pretty much similar to this example Using StateMachinePersister except that I'm using a state machine with 2 orthogonal regions (named LEFT, RIGHT). It looks like below
I first start machine1 and then send these events: START, EL1, EL2 (in this order) to it. Now
machine1.getState().getIds()
give me the result [LR, L1, R1] (which is correct).Then after transfering (persist/restore) the state of machine1 into machine2, I check the state of machine2 and receive the result [LR, L1, R1] (which is still correct).
Then I send ER1 to both machines then check the results. I realize that they are different:
machine1.getState().getIds()
= [E]machine2.getState().getIds()
= [LR, L1, R2]I don't know which one (machine1 or machine1) behave correctly (because I was asking this question a few days ago on stackoverflow . But it seems like the persister did not "fully transfer" the state from machine1 to machine2.
Below is the code that I am using:
and the machine configuration
Thank you for your time!
The text was updated successfully, but these errors were encountered: