Uploaded image for project: 'HttpComponents HttpCore'
  1. HttpComponents HttpCore
  2. HTTPCORE-29

DefaultConnectingIOReactor.execute propagates IOException, but isn't really re-callable

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 4.0-alpha3
    • 4.0-alpha4
    • HttpCore NIO
    • None

    Description

      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:

      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)
      

      Attachments

        Activity

          People

            olegk Oleg Kalnichevski
            awallgren Anders Wallgren
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: