You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Keith Wall (JIRA)" <ji...@apache.org> on 2015/08/14 14:19:46 UTC
[jira] [Created] (QPID-6694) Ensure that future wiring within async
model operations preserve exceptions
Keith Wall created QPID-6694:
--------------------------------
Summary: Ensure that future wiring within async model operations preserve exceptions
Key: QPID-6694
URL: https://issues.apache.org/jira/browse/QPID-6694
Project: Qpid
Issue Type: Bug
Components: Java Broker
Reporter: Keith Wall
We have a number of cases in asynchronous model operations where we chain code to run after a future completes, returning a future to the caller that completes once the chained code completes.
The idiom looks like this:
{code:java}
final SettableFuture<Void> returnVal = SettableFuture.create();
ListenableFuture opFuture = operationAsync();
opFuture.addListener(new Runnable()
{
// some code
returnVal.set(null);
});
{code}
where #addListener executes the Runnable when the future opFuture completes, successfully or otherwise. The idiom suffers from the fact that opFuture contains an exception, the exception itself is lost. The caller who receives returnVal gets a successfully future and the exception is effectively swallowed.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org