geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sangjin Lee (JIRA)" <j...@apache.org>
Subject [jira] Closed: (GERONIMO-3751) callbacks may not be completed when caller uses future.get() too to complete request handling
Date Mon, 17 Mar 2008 18:02:26 GMT

     [ https://issues.apache.org/jira/browse/GERONIMO-3751?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Sangjin Lee closed GERONIMO-3751.
---------------------------------


> callbacks may not be completed when caller uses future.get() too to complete request
handling
> ---------------------------------------------------------------------------------------------
>
>                 Key: GERONIMO-3751
>                 URL: https://issues.apache.org/jira/browse/GERONIMO-3751
>             Project: Geronimo
>          Issue Type: Bug
>      Security Level: public(Regular issues) 
>          Components: AsyncHttpClient
>    Affects Versions: 1.x
>            Reporter: Sangjin Lee
>            Priority: Minor
>         Attachments: GERONIMO-3751.patch
>
>
> Currently the callback methods from AsyncHttpClientCallback get called *after* the response
future object is completed.  I think this causes a subtle bug that may prevent the callback
methods from being completed if one uses both the callback and the future.
> For example, consider the following case:
> ResponseFuture future = client.invoke(..., callback); // callback is not null
> HttpResponseMessage response = future.get(); // this blocks until future is complete
> Since the future is completed before the callback is invoked, the caller thread in this
case gets unblocked before the callback is called.  If the caller thread goes away, then there
is possibility that the callback may not be completed or may not even be called, depending
on the timing.
> This strikes me as a bug...  I propose we invoke the callback first and then complete
the future so the callbacks are guaranteed to be completed even if future is used.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message