Statechart: Error when leaving parallel state via transition from within one parallel region

+1 vote
asked Mar 12, 2021 in Bug by j
edited Mar 12, 2021

According to UML standard one can exit a parallel state using a transition from only a single orthogonal region, see transition "fail" in figure 14.9 in https://www.omg.org/spec/UML/2.5/PDF#page=362

Such transitions can also be found in the PSSM test cases, so it is not something esoteric.

When trying something like this in PlantUML I surprisingly get the following error:

The state XXX has been created in a concurrent state : it cannot be used here.

or

State within concurrent state cannot be linked out of this concurrent state (between CapsLockOn and Error)

Here a full example that fails, but accoring do UML standard it should indeed work:

@startuml
[*] --> Off

state Off {

}

state On {
  [*] -> NumLockOff
  NumLockOff --> NumLockOn : EvNumLockPressed
  NumLockOn --> NumLockOff : EvNumLockPressed
  --
  [*] -> CapsLockOff
  CapsLockOff --> CapsLockOn : EvCapsLockPressed
  CapsLockOn --> CapsLockOff : EvCapsLockPressed
  --
  [*] -> ScrollLockOff
  ScrollLockOff --> ScrollLockOn : EvCapsLockPressed
  ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
}

state Error {

}

Off -> On : Go

CapsLockOn -> Error : Fail

@enduml

Also this fails:

@startuml
[*] --> Off

state Off {

}

state On {
  [*] -> NumLockOff
  NumLockOff --> NumLockOn : EvNumLockPressed
  NumLockOn --> NumLockOff : EvNumLockPressed
  --
  [*] -> CapsLockOff
  CapsLockOff --> CapsLockOn : EvCapsLockPressed
  CapsLockOn --> CapsLockOff : EvCapsLockPressed
  CapsLockOn --> Error : Fail
  --
  [*] -> ScrollLockOff
  ScrollLockOff --> ScrollLockOn : EvCapsLockPressed
  ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
}

state Error {

}

Off -> On : Go

@enduml

Would it be possible to fix this in order to align with the UML standard?

Many thanks in advance.

J.

Your answer

Your name to display (optional):
Privacy: Your email address will only be used for sending these notifications.
Anti-spam verification:

[Antispam2 Feature: please please wait 1 or 2 minutes (this message will disappear) before pressing the button otherwise it will fail](--------)
To avoid this verification in future, please log in or register.
...