You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Daniel Kulp (JIRA)" <ji...@apache.org> on 2017/08/01 19:30:00 UTC

[jira] [Resolved] (CXF-7359) Unmarshalling of a nil element fail on org.apache.cxf.interceptor.Fault: Unmarshalling Error

     [ https://issues.apache.org/jira/browse/CXF-7359?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Kulp resolved CXF-7359.
------------------------------
       Resolution: Not A Problem
    Fix Version/s: Invalid

Not a bug in CXF.   It's a bug in JAXB as we just pass the XML to JAXB and let it deserialize the XML into objects.  It's apparently handling this case wrong, but there isn't anything we can do.

> Unmarshalling of a nil element fail on org.apache.cxf.interceptor.Fault: Unmarshalling Error
> --------------------------------------------------------------------------------------------
>
>                 Key: CXF-7359
>                 URL: https://issues.apache.org/jira/browse/CXF-7359
>             Project: CXF
>          Issue Type: Bug
>          Components: JAXB Databinding
>    Affects Versions: 3.1.6
>            Reporter: Pavel Coufal
>             Fix For: Invalid
>
>
> Dear All, I try unmarshall a incomming response which contains a nil element pswExpDate, according to a xsd template.
> A unmarshalling progress fails when trys to sett null value to a callendar object.
> *Exception:*
> {code}
> 2017-05-03 12:13:14,803 [http-nio-8443-exec-7] WARN  org.apache.cxf.phase.PhaseInterceptorChain - Interceptor for {http://isds.czechpoint.cz/v20}CzeboxDataBoxAccess#{http://isds.czechpoint.cz/v20}GetPasswordInfo has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: Unmarshalling Error:  
> 	at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:905) ~[cxf-rt-databinding-jaxb-3.1.6.jar:3.1.6]
> 	at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:712) ~[cxf-rt-databinding-jaxb-3.1.6.jar:3.1.6]
> 	at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:179) ~[cxf-rt-databinding-jaxb-3.1.6.jar:3.1.6]
> 	at org.apache.cxf.wsdl.interceptors.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:109) ~[cxf-rt-wsdl-3.1.6.jar:3.1.6]
> 	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) [cxf-core-3.1.6.jar:3.1.6]
> 	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:798) [cxf-core-3.1.6.jar:3.1.6]
> 	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1670) [cxf-rt-transports-http-3.1.6.jar:3.1.6]
> 	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1551) [cxf-rt-transports-http-3.1.6.jar:3.1.6]
> 	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1348) [cxf-rt-transports-http-3.1.6.jar:3.1.6]
> 	at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56) [cxf-core-3.1.6.jar:3.1.6]
> 	at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:651) [cxf-rt-transports-http-3.1.6.jar:3.1.6]
> 	at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) [cxf-core-3.1.6.jar:3.1.6]
> 	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) [cxf-core-3.1.6.jar:3.1.6]
> 	at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:514) [cxf-core-3.1.6.jar:3.1.6]
> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:423) [cxf-core-3.1.6.jar:3.1.6]
> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:324) [cxf-core-3.1.6.jar:3.1.6]
> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:277) [cxf-core-3.1.6.jar:3.1.6]
> 	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96) [cxf-rt-frontend-simple-3.1.6.jar:3.1.6]
> 	at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:139) [cxf-rt-frontend-jaxws-3.1.6.jar:3.1.6]
> 	at com.sun.proxy.$Proxy750.getPasswordInfo(Unknown Source) [na:na]
> ...
> Caused by: javax.xml.bind.UnmarshalException: null
> 	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:483) ~[jaxb-impl-2.2.11.jar:2.2.11]
> 	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:417) ~[jaxb-impl-2.2.11.jar:2.2.11]
> 	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:394) ~[jaxb-impl-2.2.11.jar:2.2.11]
> 	at org.apache.cxf.jaxb.JAXBEncoderDecoder.doUnmarshal(JAXBEncoderDecoder.java:855) ~[cxf-rt-databinding-jaxb-3.1.6.jar:3.1.6]
> 	at org.apache.cxf.jaxb.JAXBEncoderDecoder.access$100(JAXBEncoderDecoder.java:102) ~[cxf-rt-databinding-jaxb-3.1.6.jar:3.1.6]
> 	at org.apache.cxf.jaxb.JAXBEncoderDecoder$2.run(JAXBEncoderDecoder.java:894) ~[cxf-rt-databinding-jaxb-3.1.6.jar:3.1.6]
> 	at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_121]
> 	at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:892) ~[cxf-rt-databinding-jaxb-3.1.6.jar:3.1.6]
> 	... 155 common frames omitted
> Caused by: com.sun.istack.SAXParseException2: 
> 	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:740) ~[jaxb-impl-2.2.11.jar:2.2.11]
> 	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleError(UnmarshallingContext.java:770) ~[jaxb-impl-2.2.11.jar:2.2.11]
> 	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleError(UnmarshallingContext.java:766) ~[jaxb-impl-2.2.11.jar:2.2.11]
> 	at com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$12.parse(RuntimeBuiltinLeafInfoImpl.java:595) ~[jaxb-impl-2.2.11.jar:2.2.11]
> 	at com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$12.parse(RuntimeBuiltinLeafInfoImpl.java:568) ~[jaxb-impl-2.2.11.jar:2.2.11]
> 	at com.sun.xml.bind.v2.runtime.reflect.TransducedAccessor$CompositeTransducedAccessorImpl.parse(TransducedAccessor.java:245) ~[jaxb-impl-2.2.11.jar:2.2.11]
> 	at com.sun.xml.bind.v2.runtime.unmarshaller.LeafPropertyLoader.text(LeafPropertyLoader.java:65) ~[jaxb-impl-2.2.11.jar:2.2.11]
> 	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.text(UnmarshallingContext.java:589) ~[jaxb-impl-2.2.11.jar:2.2.11]
> 	at com.sun.xml.bind.v2.runtime.unmarshaller.InterningXmlVisitor.text(InterningXmlVisitor.java:93) ~[jaxb-impl-2.2.11.jar:2.2.11]
> 	at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.processText(StAXStreamConnector.java:338) ~[jaxb-impl-2.2.11.jar:2.2.11]
> 	at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.handleEndElement(StAXStreamConnector.java:216) ~[jaxb-impl-2.2.11.jar:2.2.11]
> 	at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:185) ~[jaxb-impl-2.2.11.jar:2.2.11]
> 	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:415) ~[jaxb-impl-2.2.11.jar:2.2.11]
> 	... 161 common frames omitted
> Caused by: javax.xml.bind.UnmarshalException: 
> 	... 174 common frames omitted
> Caused by: java.lang.IllegalArgumentException: 
> 	at org.apache.xerces.jaxp.datatype.XMLGregorianCalendarImpl$Parser.parseYear(Unknown Source) ~[xercesImpl-2.9.1.jar:na]
> 	at org.apache.xerces.jaxp.datatype.XMLGregorianCalendarImpl$Parser.parse(Unknown Source) ~[xercesImpl-2.9.1.jar:na]
> 	at org.apache.xerces.jaxp.datatype.XMLGregorianCalendarImpl.<init>(Unknown Source) ~[xercesImpl-2.9.1.jar:na]
> 	at org.apache.xerces.jaxp.datatype.DatatypeFactoryImpl.newXMLGregorianCalendar(Unknown Source) ~[xercesImpl-2.9.1.jar:na]
> 	at com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$12.parse(RuntimeBuiltinLeafInfoImpl.java:592) ~[jaxb-impl-2.2.11.jar:2.2.11]
> {code}
> *Payload:*
> {code}
> <?xml version="1.0" encoding="utf-8"?>
> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>   <SOAP-ENV:Body>
>     <p:GetPasswordInfoResponse xmlns:p="http://isds.czechpoint.cz/v20" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>       <p:pswExpDate xsi:nil="true"/>
>       <p:dbStatus>
>         <p:dbStatusCode>0000</p:dbStatusCode>
>         <p:dbStatusMessage>Provedeno úspěšně.</p:dbStatusMessage>
>       </p:dbStatus>
>     </p:GetPasswordInfoResponse>
>   </SOAP-ENV:Body>
> </SOAP-ENV:Envelope>
> {code}
> *XSD chunk*
> {code}
>   <xs:complexType name="tGetPasswInfoOutput">
>     <xs:sequence>
>       <xs:element minOccurs="0" maxOccurs="1" name="pswExpDate" nillable="true" type="xs:dateTime">
>         <xs:annotation>
>           <xs:documentation>datum a čas exiprace hesla</xs:documentation>
>         </xs:annotation>
>       </xs:element>
>       <xs:element name="dbStatus" type="tns:tDbReqStatus" />
>     </xs:sequence>
>   </xs:complexType>
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)