hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Geir Harald Hansen (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HTTPCORE-289) Cancellable#cancel() not invoked when network connection dies
Date Wed, 11 Jan 2012 21:43:39 GMT

    [ https://issues.apache.org/jira/browse/HTTPCORE-289?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13184416#comment-13184416
] 

Geir Harald Hansen commented on HTTPCORE-289:
---------------------------------------------

I tried with the latest version from subversion, but still had no luck. So I write a minimal
example to show the problem I'm having.

With the attached Test.java I run it, telnet into it and type "GET / HTTP/1.0" followed by
an empty line. The program now prints "Postponing response..." to the console. Now if I kill
the telnet process nothing happens. After 30 seconds there is a timeout and the program prints
"Cancelled!" to the console.

What I expected was to get "Cancelled!" immediately when I kill the telnet process, dropping
the connection to the program.

                
> Cancellable#cancel() not invoked when network connection dies
> -------------------------------------------------------------
>
>                 Key: HTTPCORE-289
>                 URL: https://issues.apache.org/jira/browse/HTTPCORE-289
>             Project: HttpComponents HttpCore
>          Issue Type: Bug
>          Components: HttpCore NIO
>    Affects Versions: 4.2-alpha2
>            Reporter: Geir Harald Hansen
>         Attachments: Test.java
>
>
> I am rewriting my software to use the new API that comes with 4.2-alpha2. Returning a
Cancellable from HttpAsyncRequestHandler#handle() seems like a good idea for long running
requests like long polling. But I don't ever see Cancellable#cancel() being called.
> I telnet into my server and type the necessary HTTP to start a long running request.
A Cancellable is created and returned from handle(). Then I kill the telnet process, thereby
killing the connection. I expect cancel() to be invoked in the connection's Cancellable at
this point, but nothing happens. cancel() is not invoked in my Cancellable, and there are
no calls to HttpAsyncServiceHandler#closed(), HttpAsyncServiceHandler#exception() or DefaultServerIODispatch#onClosed()
either.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org


Mime
View raw message