Dan Berindei created ISPN-12711:
-----------------------------------
Summary: Collect exceptions from all targets in MultiTargetRequest
Key: ISPN-12711
URL:
https://issues.redhat.com/browse/ISPN-12711
Project: Infinispan
Issue Type: Enhancement
Components: Core
Affects Versions: 12.0.0.Final
Reporter: Dan Berindei
Assignee: Dan Berindei
Fix For: 12.1.0.Final
If a {{ResponseCollector}} throws an exception while processing a response from a target,
the request is immediately completed exceptionally with that exception. But for most
requests, we don't want to continue immediately: instead we want to wait until all the
targets have replied, either with an exception or with a success response, so we can then
release locks or retry the command.
This means each {{ResponseCollector}} implementation has to implement its own mechanism
for collecting exceptions from all the targets and throwing the exception only during
{{finish()}}.
Of course, some of our {{ResponseCollector}} implementations don't do it, and throw an
exception from {{addResponse()}} instead.
It would be best if {{MultiTargetRequest}} collected exceptions itself, and
{{ResponseCollectors}} would only have to throw the exception from {{addResponse()}}.
--
This message was sent by Atlassian Jira
(v8.13.1#813001)