[ 
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)

Reply via email to