[
https://issues.apache.org/jira/browse/SYNAPSE-205?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andreas Veithen updated SYNAPSE-205:
------------------------------------
Attachment: synapse-205.patch.txt
The problem actually is that when a connection timeout occurs,
DefaultConnectingIOReactor doesn't propagate an exception to
SessionRequestCallback (there is none to propagate). This causes the NPE in the
anonymous SessionRequestCallback implementation inside HttpCoreNIOSender. Maybe
Oleg can comment on this? The attached patch corrects this issue. I now have
another error, but I think this one is related to a misconfiguration (no proper
fault sequence defined).
> 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
> Fix For: 1.2
>
> Attachments: synapse-205.patch.txt
>
>
> 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]