[ https://issues.apache.org/jira/browse/CXF-2955?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sébastien updated CXF-2955: --------------------------- Description: I've a NullPointerException when I set a SOAP header by using an XmlObject: final XmlObject userDetails = getDetails(); final QName name = EndUserDetailsDocumentXML.type.getDocumentElementName(); final Header userDetailsHeader = new Header(name, userDetails, new XmlBeansDataBinding()); userDetailsHeader.setDirection(Header.Direction.DIRECTION_OUT); message.getHeaders().add(userDetailsHeader); The problem is that the XmlBeans implementation is guessing that the type class of the message part is not null (part.getTypeClass()). But it's always null, see the class org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor: if (b != null) { MessagePartInfo part = new MessagePartInfo(header.getName(), null); part.setConcreteName(header.getName()); b.createWriter(XMLStreamWriter.class) .write(header.getObject(), part, writer); Later in org.apache.cxf.xmlbeans.DataWriterImpl (line 71): public void write(Object obj, MessagePartInfo part, XMLStreamWriter output) { try { Class<?> typeClass = part.getTypeClass(); if (!XmlObject.class.isAssignableFrom(typeClass)) { was: I've a NullPointerException when I set a SOAP header by using an XmlObject: final XmlObject userDetails = getDetails(); final QName name = EndUserDetailsDocumentXML.type.getDocumentElementName(); final Header userDetailsHeader = new Header(name, userDetails, new XmlBeansDataBinding()); userDetailsHeader.setDirection(Header.Direction.DIRECTION_OUT); message.getHeaders().add(userDetailsHeader); The problem is that the XmlBeans implementation is guessing that the type class of the message part is not null (part.getTypeClass()). But it's always null, see the class org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor: if (b != null) { MessagePartInfo part = new MessagePartInfo(header.getName(), null); part.setConcreteName(header.getName()); b.createWriter(XMLStreamWriter.class) .write(header.getObject(), part, writer); Later in org.apache.cxf.xmlbeans.DataWriterImpl (line 71): public void write(Object obj, MessagePartInfo part, XMLStreamWriter output) { try { Class<?> typeClass = part.getTypeClass(); if (!XmlObject.class.isAssignableFrom(typeClass)) { > Null message part type class org.apache.cxf.xmlbeans.DataWriterImpl > -------------------------------------------------------------------- > > Key: CXF-2955 > URL: https://issues.apache.org/jira/browse/CXF-2955 > Project: CXF > Issue Type: Bug > Affects Versions: 2.2.6, 2.2.10 > Reporter: Sébastien > > I've a NullPointerException when I set a SOAP header by using an XmlObject: > final XmlObject userDetails = getDetails(); > final QName name = EndUserDetailsDocumentXML.type.getDocumentElementName(); > final Header userDetailsHeader = new Header(name, userDetails, new > XmlBeansDataBinding()); > userDetailsHeader.setDirection(Header.Direction.DIRECTION_OUT); > message.getHeaders().add(userDetailsHeader); > The problem is that the XmlBeans implementation is guessing that the type > class of the message part is not null (part.getTypeClass()). But it's always > null, see the class > org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor: > if (b != null) { > MessagePartInfo part = new > MessagePartInfo(header.getName(), null); > part.setConcreteName(header.getName()); > b.createWriter(XMLStreamWriter.class) > .write(header.getObject(), part, writer); > Later in org.apache.cxf.xmlbeans.DataWriterImpl (line 71): > public void write(Object obj, MessagePartInfo part, XMLStreamWriter > output) { > try { > Class<?> typeClass = part.getTypeClass(); > if (!XmlObject.class.isAssignableFrom(typeClass)) { -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.