You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by "Jean-Baptiste Onofré (JIRA)" <ji...@apache.org> on 2009/09/01 20:54:12 UTC
[jira] Commented: (SMXCOMP-627) java.lang.NullPointerException if
Notify message does not specify To field in header
[ https://issues.apache.org/activemq/browse/SMXCOMP-627?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=53954#action_53954 ]
Jean-Baptiste Onofré commented on SMXCOMP-627:
----------------------------------------------
I moved this issue into the ServiceMix component project.
> java.lang.NullPointerException if Notify message does not specify To field in header
> ------------------------------------------------------------------------------------
>
> Key: SMXCOMP-627
> URL: https://issues.apache.org/activemq/browse/SMXCOMP-627
> Project: ServiceMix Components
> Issue Type: Bug
> Components: servicemix-wsn2005
> Affects Versions: 3.2.3
> Environment: I am using servicemix 3.2.3 on a virtual windows XP machine. You can use the example wsn-http-binding example to reproduce this error.
> Reporter: David N Perkins
> Assignee: Jean-Baptiste Onofré
> Priority: Minor
>
> If a notification message is sent without specifying the To element in the Header servicemix will error.
> For example, change this code in the client example of the notify message:
> <env:Header>
> <wsa:To>
> http://www.consumer.org/service/endpoint
> </wsa:To>
> </env:Header>
> To:
> <env:Header>
> </env:Header>
> Then servicemix will first report this error:
> WARN - DeliveryChannelImpl - Error calling listener: null
> java.lang.NullPointerException
> at org.apache.servicemix.jbi.monitoring.StatisticsService.onExchangeAcce
> pted(StatisticsService.java:307)
> at org.apache.servicemix.jbi.monitoring.StatisticsService$3.exchangeAcce
> pted(StatisticsService.java:186)
> at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBoun
> d(DeliveryChannelImpl.java:608)
> at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlo
> w.java:172)
> at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.j
> ava:167)
> at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.jav
> a:134)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
> utor.java:651)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
> .java:676)
> at java.lang.Thread.run(Thread.java:595)
> And then report this error after a minute or so:
> ERROR - HttpComponent - Error processing exchange InOnly[
> id: ID:134.253.165.148-123293e28fe-19:0
> status: Active
> role: provider
> endpoint: http://www.consumer.org/service/endpoint
> in: <?xml version="1.0" encoding="UTF-8"?><ns2:Notify xmlns:ns2="http://docs.o
> asis-open.org/wsn/b-2" xmlns="http://www.w3.org/2005/08/addressing" xmlns:ns3="h
> ttp://docs.oasis-open.org/wsn/t-1" xmlns:ns4="http://docs.oasis-open.org/wsrf/bf
> -2"><ns2:NotificationMessage><ns2:Topic Dialect="http://docs.oasis-open.org/wsn/
> t-1/TopicExpression/Simple">
> myTopic
> </ns2:Topic><ns2:Message><alarm:Alarm xmlns:alarm="http://alarms.some-host"><Nam
> e xmlns="" xmlns:ns6="http://www.w3.org/2005/08/addressing">Kettle Overfill</Nam
> e><Desc xmlns="" xmlns:ns6="http://www.w3.org/2005/08/addressing">Kettle Overfil
> l Alarm</Desc><Date xmlns="" xmlns:ns6="http://www.w3.org/2005/08/addressing">20
> 07-09-22-12:00:30:100</Date><Severity xmlns="" xmlns:ns6="http://www.w3.org/2005
> /08/addressing">3</Severity><Value xmlns="" xmlns:ns6="http://www.w3.org/2005/08
> /addressing">110.2</Value><Ack xmlns="" xmlns:ns6="http://www.w3.org/2005/08/add
> ressing">false</Ack>
> </alarm:Alarm></ns2:Message></ns2:NotificationMessage></ns2:Notify>
> ]
> java.net.ConnectException: Connection timed out: connect
> at java.net.PlainSocketImpl.socketConnect(Native Method)
> at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
> at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
> at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
> at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:367)
> at java.net.Socket.connect(Socket.java:524)
> at java.net.Socket.connect(Socket.java:474)
> at java.net.Socket.<init>(Socket.java:371)
> at java.net.Socket.<init>(Socket.java:244)
> at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.c
> reateSocket(DefaultProtocolSocketFactory.java:79)
> at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.c
> reateSocket(DefaultProtocolSocketFactory.java:121)
> at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java
> :706)
> at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$Http
> ConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1321)
> at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(Htt
> pMethodDirector.java:386)
> at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMe
> thodDirector.java:170)
> at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.jav
> a:396)
> at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.jav
> a:346)
> at org.apache.servicemix.http.processors.ProviderProcessor.process(Provi
> derProcessor.java:168)
> at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLi
> feCycle.java:538)
> at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(Async
> BaseLifeCycle.java:490)
> at org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLife
> Cycle.java:46)
> at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBoun
> d(DeliveryChannelImpl.java:620)
> at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlo
> w.java:172)
> at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.j
> ava:167)
> at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.jav
> a:134)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
> utor.java:651)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
> .java:676)
> at java.lang.Thread.run(Thread.java:595)
> The To element should not have to be filled in as it is not part of the ws-notification spec and if you already know who the message is suppose to go to then why use an esb? Just send the message strait to the recipient.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.