Uploaded image for project: 'CXF'
  1. CXF
  2. CXF-3291

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

    XMLWordPrintableJSON

Details

    • Wish
    • Status: Closed
    • Major
    • Resolution: Invalid
    • 2.3.1
    • Invalid
    • JAXB Databinding
    • None
    • Microsoft Windows 7 Enterprise, jdk1.6.0_23, JBoss 6.0 final which contains 2.3.1 version of CXF.
      Intel Dual Core, 3GB RAM

    Description

      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]

      Attachments

        1. cxf3291_eclipse_projects.zip
          70 kB
          Victor-Adrian Ichim

        Activity

          People

            Unassigned Unassigned
            ichim_victor Victor-Adrian Ichim
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: