sequence delays break double-activated lifelines and raw.github

+2 votes
asked Jan 6, 2015 in Bug by ark (140 points)

I have a sequence diagram where I want to indicate that several messages are sent during a synchronisation phase. Activate and delay look like proper candidates to do this. Here's the properly rendered diagram without delay:

Sequence diagram rendered by PlantUml demo server

@startuml
hide footbox
 
box "Source Endpoint"
    participant "Source Control\nService" as SCS
    participant "Data Service" as DS
end box
 
box "Sink Endpoint"
    participant "Data Client" as DC
    participant "Source Controller" as SCL
end box
 
activate SCS
activate SCL
activate DS
 
DC <- SCL : start
activate DC
 
DS <- DC : connect
 
DC -> SCL : request registration
SCS <- SCL : {RegistrationRequest}
 
SCS -> DS : call for synchronisation
activate DS
DS -> DC : {Sychronisation}
 
SCS --> SCL : {RegistrationRequestAcknowledgement}
DC <- SCL : registration requested
 
' ...
 
DC --> SCL : confirm synchronisation
SCS <- SCL : {RegistrationSuccess}
 
DS -> DC : {Sychronisation}
SCS -> DS : stop synchronisation
deactivate DS
 
SCS --> SCL : {RegistrationSuccessAcknowledgement}
@enduml
If I uncomment the delay the svg looks like this, see the difference in the activation after delay ends?:
 
improperly rendered activation after delay
 
I'm integrating those diagrams via svg and rawgit. When I first tried to use delay it didn't render on github either (something about XML specified twice). Without delay all is fine.
 
I'm always using the online PlantUml server for generating my diagrams.

1 Answer

+1 vote
answered Feb 20, 2016 by Fuhrmanator (1,700 points)

Simple case where the solid lifeline bug is there (it's also in the documentation with delay):

http://www.plantuml.com/plantuml/img/SoWkIImgAStDuIe0qfd9cGM9UIKAoLowTWh92bOAkLo9oIMPPOabgK2nP0MWg9L2KavY1fUUdXuAFoKLIQ53QbuAq4W0

I spied the source code, and there's a hack/workaround with

skinparam lifelineStrategy nosolid

 

 

...