NPE in HttpCoreNIOSender and "I/O reactor has been shut down"
-------------------------------------------------------------

                 Key: SYNAPSE-205
                 URL: https://issues.apache.org/jira/browse/SYNAPSE-205
             Project: Synapse
          Issue Type: Bug
          Components: Transports
    Affects Versions: NIGHTLY
            Reporter: Andreas Veithen
            Priority: Critical


When the target service is not available, a request to the proxy service causes 
the following exception:

Exception in thread "HttpCoreNIOSender" java.lang.NullPointerException
        at 
org.apache.synapse.transport.nhttp.HttpCoreNIOSender$3.handleError(HttpCoreNIOSender.java:460)
        at 
org.apache.synapse.transport.nhttp.HttpCoreNIOSender$3.timeout(HttpCoreNIOSender.java:439)
        at 
org.apache.http.impl.nio.reactor.SessionRequestImpl.timeout(SessionRequestImpl.java:151)
        at 
org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processTimeouts(DefaultConnectingIOReactor.java:152)
        at 
org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvents(DefaultConnectingIOReactor.java:96)
        at 
org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:158)
        at 
org.apache.synapse.transport.nhttp.HttpCoreNIOSender.executeClientEngine(HttpCoreNIOSender.java:139)
        at 
org.apache.synapse.transport.nhttp.HttpCoreNIOSender.access$000(HttpCoreNIOSender.java:68)
        at 
org.apache.synapse.transport.nhttp.HttpCoreNIOSender$1.run(HttpCoreNIOSender.java:101)
        at java.lang.Thread.run(Thread.java:613)

Any further request then fails with "java.lang.IllegalStateException: I/O 
reactor has been shut down".

The instruction in HttpCoreNIOSender that causes the NPE is as follows:

MessageContext nioFaultMessageContext =
    MessageContextBuilder.createFaultMessageContext(
        mc, new AxisFault(exception.toString(), exception));

Probably, when handleError is called by the timeout (rather than the failed) 
method, as is the case here (see stacktrace), exception is null. The 
handleError method doesn't handle this situation appropriately.

Note that this issue is similar but not identical to the one described in 
SYNAPSE-168.

-- 
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