Bug 781072 (SOA-3560) - NullPointerException when soap message sent with soap envelope in default namespace
Summary: NullPointerException when soap message sent with soap envelope in default nam...
Keywords:
Status: CLOSED NEXTRELEASE
Alias: SOA-3560
Product: JBoss Enterprise SOA Platform 5
Classification: JBoss
Component: JBossWS
Version: 5.2.0.ER6
Hardware: Unspecified
OS: Unspecified
urgent
urgent
Target Milestone: ---
: 5.2.0 GA,5.2.0.CR1
Assignee: Default User
QA Contact:
URL: http://jira.jboss.org/jira/browse/SOA...
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-11-07 09:39 UTC by Jiri Sedlacek
Modified: 2015-08-02 23:43 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
JBossWS native stack
Last Closed: 2011-11-14 16:03:20 UTC
Type: Bug


Attachments (Terms of Use)
reproducer_ws.tgz (1.79 KB, application/x-compressed-tar)
2011-11-07 09:40 UTC, Jiri Sedlacek
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker SOA-3560 0 Blocker Closed NullPointerException when soap message sent with soap envelope in default namespace 2013-06-10 06:37:24 UTC

Description Jiri Sedlacek 2011-11-07 09:39:26 UTC
project_key: SOA

When SOAP request is sent to webservice, JBossWS throws NPE: 

10:24:32,763 ERROR [SOAPFaultHelperJAXWS] SOAP request exception
java.lang.NullPointerException
	at org.jboss.ws.core.soap.EnvelopeBuilderDOM.buildSOAPHeader(EnvelopeBuilderDOM.java:188)
	at org.jboss.ws.core.soap.EnvelopeBuilderDOM.build(EnvelopeBuilderDOM.java:164)
	at org.jboss.ws.core.soap.EnvelopeBuilderDOM.build(EnvelopeBuilderDOM.java:97)
	at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:294)
	at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:193)
	at org.jboss.wsf.stack.jbws.RequestHandlerImpl.processRequest(RequestHandlerImpl.java:451)
	at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:294)
	at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:203)
	at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:129)
	at org.jboss.wsf.common.servlet.AbstractEndpointServlet.service(AbstractEndpointServlet.java:85)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:183)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:95)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:599)
	at org.apache.tomcat.util.net.JIoEndpoin

There is equals method on null String called in BuildSOAPHeader method (the same is in BuildSOAPBody method) when building DOM tree from SOAP message.

This affects also all stuff, which uses JBossWS to send/receive it's own SOAP messages (juddi-client, probably also ESB). 

Reproducer is attached.

Comment 1 Jiri Sedlacek 2011-11-07 09:40:23 UTC
Attachment: Added: reproducer_ws.tgz


Comment 2 Kevin Conner 2011-11-07 14:04:09 UTC
There may be more instances of this, for example a quick search in the same package shows the two occurrences mentioned by Jiri and also others in EnvelopeBuilderStax.java and SOAPHeaderImpl.java 

EnvelopeBuilderDOM.java:188:      if (!soapHeader.getPrefix().equals(domHeader.getPrefix()))
EnvelopeBuilderDOM.java:229:      if (!soapBody.getPrefix().equals(domBody.getPrefix()))

EnvelopeBuilderStax.java:400:      return !qName.getPrefix().equals(EMPTY_STRING) ? qName.getPrefix() + ":" + qName.getLocalPart() : qName.getLocalPart();
SOAPHeaderImpl.java:97:      if (qname == null || qname.getNamespaceURI().length() == 0 || qname.getPrefix().length() == 0)


Comment 3 Kevin Conner 2011-11-07 19:02:43 UTC
Issue caused by JBPAPP-5450

Comment 4 Kevin Conner 2011-11-07 19:10:42 UTC
Link: Added: This issue depends JBPAPP-7498


Comment 5 Kevin Conner 2011-11-07 19:26:26 UTC
Link: Removed: This issue depends JBPAPP-7498 


Comment 6 Kevin Conner 2011-11-07 19:31:13 UTC
Link: Added: This issue depends JBPAPP-7499


Comment 7 Jiri Sedlacek 2011-11-08 13:29:27 UTC
I tested patched jar provided by Kevin and it solves the problem.

Comment 8 Douglas Palmer 2011-11-09 11:18:25 UTC
Incorporated oneoff jar from JBPAPP-7499.

Comment 9 David Le Sage 2011-11-14 01:04:44 UTC
Release Notes Docs Status: Added: Not Required
Writer: Added: dlesage


Comment 10 Jiri Sedlacek 2011-11-14 16:03:20 UTC
Verified in 5.2.0.CR1

Comment 11 spybugs99 2012-05-09 01:27:14 UTC
Is this going to be rolled into the jbossws stack for EAP?

Comment 12 dance12 2012-09-10 10:03:38 UTC
This affects EAP 4.3 CP10 as well.


Note You need to log in before you can comment on or make changes to this bug.