qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Keith Wall (JIRA)" <j...@apache.org>
Subject [jira] [Created] (QPID-6694) Ensure that future wiring within async model operations preserve exceptions
Date Fri, 14 Aug 2015 12:19:46 GMT
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


Mime
View raw message