geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sangjin Lee" <>
Subject Re: [AsyncHttpClient] order of Future completion and callback invocation
Date Tue, 15 Jan 2008 21:42:32 GMT
I have opened a JIRA issue (GERONIMO-3751), and attached a suggested patch.
Please let me know what you think...


On Jan 15, 2008 11:49 AM, Sangjin Lee <> wrote:

> 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.  What do you think?  I'll open a JIRA issue if you
> guys agree this is a bug.
> Thanks,
> Sangjin

View raw message