[ 
https://issues.apache.org/jira/browse/AXIS2-3219?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13132521#comment-13132521
 ] 

Tammo van Lessen commented on AXIS2-3219:
-----------------------------------------

This issue is still not fixed and is causing NPEs in my real life, so please 
re-open this ticket.

Here is what happens:

I'm calling a service via the local transport. The message is passed to 
LocalTransportSender, which eventually creates and instance of 
LocalTransportReceiver in finalizeSendWithToAddress(...). It passes itself 
(i.e. an instance of LocalTransportSender) to the constructor, which sets its 
confContext field to the static CONFIG_CONTEXT field, which is always null. 
Thus, localTransportReceiver.processMessage is destined to throw a NPE.

The only workaround is to manually set the CONFIG_CONTEXT somewhere before 
using the local transport. I'm really wondering how the test case can run 
without exposing this NPE.

The fix would be easy IMO by passing the configuration context that can be get 
from the msgContext directly to the constructor of LocalTransportReceiver. The 
LocalTransportReceiver(LocalTransportSender sender) constructor is currently 
useless IMO.

The nicer fix would be probably to add a field for the config context in the 
LocalTransportSender and set it in its init(...) method. Then, the 
LocalTransportReceiver(LocalTransportSender sender) could use the config 
context hold in the sender.

Thanks,
  Tammo
                
> NPE in LocalTransportReceiver.processMessage() 
> -----------------------------------------------
>
>                 Key: AXIS2-3219
>                 URL: https://issues.apache.org/jira/browse/AXIS2-3219
>             Project: Axis2
>          Issue Type: Bug
>          Components: transports
>            Reporter: Alex Boisvert
>            Assignee: David Illsley
>
> I tried to invoke a service through the local transport and got:
> java.lang.NullPointerException
>         at 
> org.apache.axis2.transport.local.LocalTransportReceiver.processMessage(LocalTransportReceiver.java:58)
>         at 
> org.apache.axis2.transport.local.LocalTransportSender.finalizeSendWithToAddress(LocalTransportSender.java:112)
>         at 
> org.apache.axis2.transport.local.LocalTransportSender.invoke(LocalTransportSender.java:87)
>         at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:396)
>         at 
> org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:374)
>         at 
> org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:211)
>         at 
> org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
>         at 
> org.apache.ode.axis2.ExternalService$1$1.call(ExternalService.java:150)
>         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:123)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>         at java.lang.Thread.run(Thread.java:595)
> Looking at the code (trunk r577941),
> public class LocalTransportReceiver {
>     public static ConfigurationContext CONFIG_CONTEXT;
>     private ConfigurationContext confContext;
>     private LocalTransportSender sender;
>     public LocalTransportReceiver(ConfigurationContext configContext) {
>         confContext = configContext;
>     }
>     public LocalTransportReceiver(LocalTransportSender sender) {
>         this(CONFIG_CONTEXT);
>         this.sender = sender;
>     }
>     // REST OF CLASS NOT INCLUDED
> }
> It doesn't look like CONFIG_CONTEXT is being initalized, and I would expect 
> the current ConfigurationContext to be supplied by the LocalTransportSender.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to