How to listen for a link intermediateThrowEvent (link start event)?

Hi,

I’m trying to listen for link start events. Currently not even the parse listener is acknowledging the link intermediateThrowEvent …

What listener/handler can I use for the link start events? It might be that I’m missing something or the “GoTo” behavior of the link doesn’t register with the ProcessEngine. Thus far I could only solve the problem with workarounds: e.g. if a sequence flow has been executed and it points to a link intermediateThrowEvent I consider the throw event executed.

Thanks,
Irmin

Edit: not needed post. wrong info for question. :slight_smile:

Yes, I was aware of all that including the “GoTo” behavior as stated in the initial post…

The question is, is there a way of noticing the “GoTo”'s “execution”? (I’ll call it execution, or maybe traversal …).

The process engine does not represent intermediate throwing link events internally but just connects the incoming sequence flow to the catching link event (relevant code comment: https://github.com/camunda/camunda-bpm-platform/blob/7.5.0/engine/src/main/java/org/camunda/bpm/engine/impl/bpmn/parser/BpmnParse.java#L1440-L1444). In consequence, you cannot attach execution listeners to it and you won’t find it in the history tables. The workaround you mention in your first post is your best bet, I think.

What’s your use case for listening to link events?

Cheers,
Thorben

The use-case is the process test coverage library:

The coverage doesn’t reach 100% with link events, although they have actually been covered.
I guess I’ll go with my workaround… It could make some sense registering the throwing link events in the history to be able to find out which event triggered a catch event in case of multiple throwing events.

@z0rbas instead of the sequence flow pointing to the Link Throw, could you use the sequence flow coming out of the Link Catch? So if the sequence flow execution listener fires, then you know the link was successful because it is on the Catch side.

@thorben Execution Listeners on the Link Event should not function? (just tested and did not appear to work).

@StephenOTT: Correct, no execution listeners on link throw events.

@z0rbas: Feel free to create a ticket in our JIRA.

@StephenOTT As I said, with multiple throw events it’s better to use the sequence flow going into the throw event to pinpoint the source.

@thorben Thanks for the answers! I guess I’ll create a ticket … :slight_smile: