highmed / highmed-dsf

HiGHmed Data Sharing Framework funded by the German Federal Ministry of Education and Research (BMBF, grant ids: 01ZZ1802E and 01ZZ1802A)
Apache License 2.0
32 stars 20 forks source link

QuestionniareResponse Websocket connection dies on missing BPMN User-Task #394

Closed wetret closed 1 year ago

wetret commented 1 year ago

Answering a QuestionnaireResponse that belongs to a non-existent BPMN user-task (e.g. the process continued without waiting on the user-task answer or the process died) terminates the websocket connection between the BPE and the DSF FHIR server. This is especially damaging if a QuestionnaireResponse is answered during BPE downtime and processed during BPE startup, resulting in a missing websocket connection.

To fix the issue, handle the exception instead of rethrowing in:

https://github.com/highmed/highmed-dsf/blob/b7bdb0ec9a239b6ef786bfd066dc83761f959a02/dsf-bpe/dsf-bpe-server/src/main/java/org/highmed/dsf/fhir/questionnaire/QuestionnaireResponseHandler.java#L72-L76