You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by Kasun Indrasiri <ka...@gmail.com> on 2012/02/13 07:19:44 UTC
Can the context of a NHttpConnection becomes null?
Hi all,
When we use httpcore-4.1.3 with Apache Synapse, we observed(intermittent
issue) that the getContext method return null for non-null connection :
org.apache.http.nio.NHttpClientConnection
(org.apache.http.nio.NHttpConnection).
Any thoughts on a possible scenario that can cause this issue?
Here is the stack trace We got from synapse. Obviously, we haven't done any
null checks for getContext().
TID: [] [WSO2 ESB] [2012-02-13 00:28:33,257] ERROR
{org.apache.synapse.core.axis2.Axis2Sender} - Unexpected error during
sending message out {org.apache.synapse.core.axis2.Axis2Sender}
java.lang.NullPointerException
at
org.apache.synapse.transport.nhttp.debug.ClientConnectionDebug.recordRequestStartTime(ClientConnectionDebug.java:58)
at
org.apache.synapse.transport.nhttp.HttpCoreNIOSender.sendAsyncRequest(HttpCoreNIOSender.java:420)
at
org.apache.synapse.transport.nhttp.HttpCoreNIOSender.invoke(HttpCoreNIOSender.java:303)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:443)
at
org.apache.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient.send(DynamicAxisOperation.java:193)
at
org.apache.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient.executeImpl(DynamicAxisOperation.java:175)
at
org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at
org.apache.synapse.core.axis2.Axis2FlexibleMEPClient.send(Axis2FlexibleMEPClient.java:441)
at
org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:57)
at
org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:281)
at
org.apache.synapse.endpoints.AbstractEndpoint.send(AbstractEndpoint.java:297)
at
org.apache.synapse.endpoints.AddressEndpoint.send(AddressEndpoint.java:59)
at
org.apache.synapse.endpoints.LoadbalanceEndpoint.send(LoadbalanceEndpoint.java:126)
at
org.apache.synapse.endpoints.IndirectEndpoint.send(IndirectEndpoint.java:54)
at
org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:87)
at
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:60)
at
org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:114)
at
org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:170)
at
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:60)
at
org.apache.synapse.config.xml.AnonymousListMediator.mediate(AnonymousListMediator.java:30)
at
org.apache.synapse.config.xml.SwitchCase.mediate(SwitchCase.java:66)
at
org.apache.synapse.mediators.filters.SwitchMediator.mediate(SwitchMediator.java:108)
at
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:60)
at
org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:114)
at
org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:144)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181)
at
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
at
org.apache.synapse.transport.nhttp.ServerWorker.processEntityEnclosingMethod(ServerWorker.java:409)
at
org.apache.synapse.transport.nhttp.ServerWorker.run(ServerWorker.java:261)
at
org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:173)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
Thanks,
--
Kasun Indrasiri
Associate Technical Lead,
WSO2 Inc. - "Lean . Enterprise . Middleware" - http://www.wso2.com/
Blog : http://kasunpanorama.blogspot.com/
Re: Can the context of a NHttpConnection becomes null?
Posted by Oleg Kalnichevski <ol...@apache.org>.
On Mon, Feb 13, 2012 at 07:42:03PM +0530, Kasun Indrasiri wrote:
> On Mon, Feb 13, 2012 at 11:49 AM, Kasun Indrasiri <ka...@gmail.com>wrote:
>
> > Hi all,
> >
> > When we use httpcore-4.1.3 with Apache Synapse, we observed(intermittent
> > issue) that the getContext method return null for non-null connection :
> > org.apache.http.nio.NHttpClientConnection
> > (org.apache.http.nio.NHttpConnection).
> >
> > Any thoughts on a possible scenario that can cause this issue?
> >
> We suspect that this scenario occurs when there is a connection timeout
> between the back-end and synapse. Anyway, the connection's context should
> not be null, I guess.
>
Hi Kasun
The context variable is non-final, so theoretically it can be null, but this variable is never set to null anywhere in HttpCore.
Hope this helps somewhat.
Oleg
> >
> > Here is the stack trace We got from synapse. Obviously, we haven't done
> > any null checks for getContext().
> > TID: [] [WSO2 ESB] [2012-02-13 00:28:33,257] ERROR
> > {org.apache.synapse.core.axis2.Axis2Sender} - Unexpected error during
> > sending message out {org.apache.synapse.core.axis2.Axis2Sender}
> > java.lang.NullPointerException
> > at
> > org.apache.synapse.transport.nhttp.debug.ClientConnectionDebug.recordRequestStartTime(ClientConnectionDebug.java:58)
> > at
> > org.apache.synapse.transport.nhttp.HttpCoreNIOSender.sendAsyncRequest(HttpCoreNIOSender.java:420)
> > at
> > org.apache.synapse.transport.nhttp.HttpCoreNIOSender.invoke(HttpCoreNIOSender.java:303)
> > at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:443)
> > at
> > org.apache.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient.send(DynamicAxisOperation.java:193)
> > at
> > org.apache.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient.executeImpl(DynamicAxisOperation.java:175)
> > at
> > org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
> > at
> > org.apache.synapse.core.axis2.Axis2FlexibleMEPClient.send(Axis2FlexibleMEPClient.java:441)
> > at
> > org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:57)
> > at
> > org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:281)
> > at
> > org.apache.synapse.endpoints.AbstractEndpoint.send(AbstractEndpoint.java:297)
> > at
> > org.apache.synapse.endpoints.AddressEndpoint.send(AddressEndpoint.java:59)
> > at
> > org.apache.synapse.endpoints.LoadbalanceEndpoint.send(LoadbalanceEndpoint.java:126)
> > at
> > org.apache.synapse.endpoints.IndirectEndpoint.send(IndirectEndpoint.java:54)
> > at
> > org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:87)
> > at
> > org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:60)
> > at
> > org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:114)
> > at
> > org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:170)
> > at
> > org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:60)
> > at
> > org.apache.synapse.config.xml.AnonymousListMediator.mediate(AnonymousListMediator.java:30)
> > at
> > org.apache.synapse.config.xml.SwitchCase.mediate(SwitchCase.java:66)
> > at
> > org.apache.synapse.mediators.filters.SwitchMediator.mediate(SwitchMediator.java:108)
> > at
> > org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:60)
> > at
> > org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:114)
> > at
> > org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:144)
> > at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181)
> > at
> > org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
> > at
> > org.apache.synapse.transport.nhttp.ServerWorker.processEntityEnclosingMethod(ServerWorker.java:409)
> > at
> > org.apache.synapse.transport.nhttp.ServerWorker.run(ServerWorker.java:261)
> > at
> > org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:173)
> > at
> > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> > at
> > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> >
> > Thanks,
> > --
> > Kasun Indrasiri
> > Associate Technical Lead,
> > WSO2 Inc. - "Lean . Enterprise . Middleware" - http://www.wso2.com/
> > Blog : http://kasunpanorama.blogspot.com/
> >
> >
>
>
> --
> Kasun Indrasiri
> Associate Technical Lead,
> WSO2 Inc. - "Lean . Enterprise . Middleware" - http://www.wso2.com/
> Blog : http://kasunpanorama.blogspot.com/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org
Re: Can the context of a NHttpConnection becomes null?
Posted by Kasun Indrasiri <ka...@gmail.com>.
On Mon, Feb 13, 2012 at 11:49 AM, Kasun Indrasiri <ka...@gmail.com>wrote:
> Hi all,
>
> When we use httpcore-4.1.3 with Apache Synapse, we observed(intermittent
> issue) that the getContext method return null for non-null connection :
> org.apache.http.nio.NHttpClientConnection
> (org.apache.http.nio.NHttpConnection).
>
> Any thoughts on a possible scenario that can cause this issue?
>
We suspect that this scenario occurs when there is a connection timeout
between the back-end and synapse. Anyway, the connection's context should
not be null, I guess.
>
> Here is the stack trace We got from synapse. Obviously, we haven't done
> any null checks for getContext().
> TID: [] [WSO2 ESB] [2012-02-13 00:28:33,257] ERROR
> {org.apache.synapse.core.axis2.Axis2Sender} - Unexpected error during
> sending message out {org.apache.synapse.core.axis2.Axis2Sender}
> java.lang.NullPointerException
> at
> org.apache.synapse.transport.nhttp.debug.ClientConnectionDebug.recordRequestStartTime(ClientConnectionDebug.java:58)
> at
> org.apache.synapse.transport.nhttp.HttpCoreNIOSender.sendAsyncRequest(HttpCoreNIOSender.java:420)
> at
> org.apache.synapse.transport.nhttp.HttpCoreNIOSender.invoke(HttpCoreNIOSender.java:303)
> at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:443)
> at
> org.apache.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient.send(DynamicAxisOperation.java:193)
> at
> org.apache.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient.executeImpl(DynamicAxisOperation.java:175)
> at
> org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
> at
> org.apache.synapse.core.axis2.Axis2FlexibleMEPClient.send(Axis2FlexibleMEPClient.java:441)
> at
> org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:57)
> at
> org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:281)
> at
> org.apache.synapse.endpoints.AbstractEndpoint.send(AbstractEndpoint.java:297)
> at
> org.apache.synapse.endpoints.AddressEndpoint.send(AddressEndpoint.java:59)
> at
> org.apache.synapse.endpoints.LoadbalanceEndpoint.send(LoadbalanceEndpoint.java:126)
> at
> org.apache.synapse.endpoints.IndirectEndpoint.send(IndirectEndpoint.java:54)
> at
> org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:87)
> at
> org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:60)
> at
> org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:114)
> at
> org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:170)
> at
> org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:60)
> at
> org.apache.synapse.config.xml.AnonymousListMediator.mediate(AnonymousListMediator.java:30)
> at
> org.apache.synapse.config.xml.SwitchCase.mediate(SwitchCase.java:66)
> at
> org.apache.synapse.mediators.filters.SwitchMediator.mediate(SwitchMediator.java:108)
> at
> org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:60)
> at
> org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:114)
> at
> org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:144)
> at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181)
> at
> org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
> at
> org.apache.synapse.transport.nhttp.ServerWorker.processEntityEnclosingMethod(ServerWorker.java:409)
> at
> org.apache.synapse.transport.nhttp.ServerWorker.run(ServerWorker.java:261)
> at
> org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:173)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>
> Thanks,
> --
> Kasun Indrasiri
> Associate Technical Lead,
> WSO2 Inc. - "Lean . Enterprise . Middleware" - http://www.wso2.com/
> Blog : http://kasunpanorama.blogspot.com/
>
>
--
Kasun Indrasiri
Associate Technical Lead,
WSO2 Inc. - "Lean . Enterprise . Middleware" - http://www.wso2.com/
Blog : http://kasunpanorama.blogspot.com/