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

Anders Wallgren commented on HTTPCORE-29:
-----------------------------------------

Your patches fixes this instance.  However, it doesn't address the underlying 
issue: execute() will throw IOExceptions (as declared), after which the 
IOReactor is dead -- I can't call execute() again. 

What happens to existing connections in this case?  Are they abandoned?

It seems to me that this class should be designed to be robust, and suitable 
for use in a long-running environment.  As it is currently, it is not.

> DefaultConnectingIOReactor.execute propagates IOException, but isn't really 
> re-callable
> ---------------------------------------------------------------------------------------
>
>                 Key: HTTPCORE-29
>                 URL: https://issues.apache.org/jira/browse/HTTPCORE-29
>             Project: HttpComponents Core
>          Issue Type: Bug
>          Components: HttpCore NIO
>    Affects Versions: 4.0-alpha3
>            Reporter: Anders Wallgren
>             Fix For: 4.0-alpha4
>
>
> I'm trying to figure out what to do when DefaultConnectingIOReactor.execute 
> throws an exception.  It doesn't seem like I can just call execute() again 
> after handling the exception, since that will recreate all the state in DCIOR.
> Seems to me that there needs to be a different way to handle exceptions, or 
> the execute method should be callable more than once.
> For reference, here's the stack trace of an exception:
> {code}
> 2007-01-23T16:23:19.800 | ERROR | urceInvoker |                               
>                 | NewResourceInvoker             | Invalid argument: 
> sun.nio.ch.Net.setIntOption
> java.net.SocketException: Invalid argument: sun.nio.ch.Net.setIntOption
>       at sun.nio.ch.Net.setIntOption0(Native Method)
>       at sun.nio.ch.Net.setIntOption(Net.java:154)
>       at sun.nio.ch.SocketChannelImpl$1.setInt(SocketChannelImpl.java:406)
>       at sun.nio.ch.SocketOptsImpl.setBoolean(SocketOptsImpl.java:38)
>       at sun.nio.ch.SocketOptsImpl$IP$TCP.noDelay(SocketOptsImpl.java:284)
>       at sun.nio.ch.OptionAdaptor.setTcpNoDelay(OptionAdaptor.java:48)
>       at sun.nio.ch.SocketAdaptor.setTcpNoDelay(SocketAdaptor.java:268)
>       at 
> org.apache.http.nio.impl.reactor.DefaultConnectingIOReactor.prepareSocket(DefaultConnectingIOReactor.java:171)
>       at 
> org.apache.http.nio.impl.reactor.DefaultConnectingIOReactor.processEvent(DefaultConnectingIOReactor.java:158)
>       at 
> org.apache.http.nio.impl.reactor.DefaultConnectingIOReactor.processEvents(DefaultConnectingIOReactor.java:134)
>       at 
> org.apache.http.nio.impl.reactor.DefaultConnectingIOReactor.execute(DefaultConnectingIOReactor.java:94)
>       at 
> com.electriccloud.commander.domain.NewResourceInvoker.innerRun(NewResourceInvoker.java:304)
>       at 
> com.electriccloud.util.FailsafeRunnable.run(FailsafeRunnable.java:105)
>       at java.lang.Thread.run(Thread.java:619)
> {code}

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


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to