[
https://issues.apache.org/jira/browse/HTTPCORE-272?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Oleg Kalnichevski resolved HTTPCORE-272.
----------------------------------------
Resolution: Fixed
Geir,
Protocol API in HttpCore has undergone a thorough redesign. The old API and
implementation classes had been deprecated and new implementations added to
supersede deprecated ones. The good news is the new API provides a facility to
cancel long running asynchronous request handlers. The new async request
handler can optionally return a Cancellable instance from the #handle method
[1]. This enables the protocol handler to cancel the request handling process
if the handler is no longer expected to produce a result, for instance, due to
the opposite endpoint closing the connection.
Please have a look at the new API and let me know if it addresses the issue for
you. Feedback will be highly appreciated.
Oleg
[1]
http://svn.apache.org/repos/asf/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncRequestHandler.java
> AsyncNHttpServiceHandler does not react when long polling clients disconnect
> ----------------------------------------------------------------------------
>
> Key: HTTPCORE-272
> URL: https://issues.apache.org/jira/browse/HTTPCORE-272
> Project: HttpComponents HttpCore
> Issue Type: Bug
> Components: HttpCore NIO
> Affects Versions: 4.1.3
> Reporter: Geir Harald Hansen
> Priority: Minor
> Fix For: 4.2-alpha2
>
>
> When using NHttpRequestHandler and in its handle() method storing the
> NHttpResponseTrigger and HttpResponse for later, to implement long polling,
> AsyncNHttpServiceHandler does not react when clients disconnect. It does
> react (its close() method is invoked) if other connections are closed,
> though. Its close() method is also called later when trying to write to the
> connection.
> Order of events:
> 1. NHttpRequestHandler.handle() invoked, trigger and response stored
> 2. Client disconnects - connection goes to CLOSE_WAIT
> 3. Connection goes out of CLOSE_WAIT and disappears
> 4. After a few minutes I try to use the NHttpResponseTrigger to send a
> response
> 5. Now AsyncNHttpServiceHandler reacts and tells me the connection has closed
> It would be useful if AsyncNHttpServiceHandler was told of closed connections
> immediately so resources are not wasted preparing data for clients that are
> no longer there.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]