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

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

It the IOException happens while initialiizing the reactor, I can see a 
legitimate reason to shut down the reactor.

However if the reactor has started properly and I now have 250 outbound 
sessions and one of them has an IOException, it doesn't make sense to me that 
the other 249 sessions should have to fail.  The session that had the problem 
should be shut down, but the reactor should not fail.

Does that make sense?

> 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
>         Assigned To: Oleg Kalnichevski
>             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