Unmarshalling null value for java.lang.Long generates an empty string exception
-------------------------------------------------------------------------------

                 Key: CXF-3291
                 URL: https://issues.apache.org/jira/browse/CXF-3291
             Project: CXF
          Issue Type: Bug
          Components: JAXB Databinding
    Affects Versions: 2.3.1
         Environment: Microsoft Windows 7 Enterprise, jdk1.6.0_23, JBoss 6.0 
final which contains 2.3.1 version of CXF. JDK 
Intel Dual Core, 3GB RAM
            Reporter: Victor-Adrian Ichim


java.lang.Long is not unmarshalled (while primitive long works)

Steps to reproduce:
1. Create a RPC-LITERAL web service on a stateless session bean with a single 
method like this: 
public ResultDTO compute(FilterDTO filter) 
FilterDTO must contain a java.lang.Long id; property.
Annotated FilterDTO with @XmlAccessorType(XmlAccessType.FIELD)

2. Generate the wsdl file with org.apache.cxf.tools.java2ws.JavaToWS

3. Deploy the ear by including the wsdl file also (wsdlLocation is specified on 
the bean for @WebService)

4. Start the server and use a client to call the method. Having RPC-LITERAL the 
parameter must be not null in the request.
So FilterDTO must be instantiated. Do not assign any value to the id field (let 
it null).

Result:

16:40:36,317 INFO  [STDOUT] DefaultValidationEventHandler: [ERROR]: For input 
string: ""
16:40:36,317 INFO  [STDOUT]      Location: line 1
16:40:36,323 WARN  [org.apache.cxf.phase.PhaseInterceptorChain] Interceptor for 
{http://ws.ro/}ServiceFacadeService#{http://ws.ro/}compute has thrown 
exception, unwinding now: org.apache.cxf.interceptor.Fault: Unmarshalling 
Error: For input
 string: ""
        at 
org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:787) 
[:2.3.1]
        at 
org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:628) 
[:2.3.1]
        at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:133) 
[:2.3.1]
........
Caused by: javax.xml.bind.UnmarshalException
 - with linked exception:
[javax.xml.bind.UnmarshalException: For input string: ""
 - with linked exception:
[java.lang.NumberFormatException: For input string: ""]]
        at 
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:425)
 [:
2.2]
        at 
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:362)
 [:2.2]
        at 
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:339)
 [:2.2]
        at 
org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:764) 
[:2.3.1]
Caused by: javax.xml.bind.UnmarshalException: For input string: ""
 - with linked exception:
[java.lang.NumberFormatException: For input string: ""]
        ... 46 more
Caused by: java.lang.NumberFormatException: For input string: ""
        at 
java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) 
[:1.6.0_23]
        at java.lang.Long.parseLong(Long.java:431) [:1.6.0_23]
        at java.lang.Long.valueOf(Long.java:525) [:1.6.0_23]
        at 
com.sun.xml.bind.DatatypeConverterImpl._parseLong(DatatypeConverterImpl.java:143)
 [:2.2]


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to