IBM Support

PH46247: Array out of range exception from JAXB unmarshaller when using QName Java type

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

APAR status

  • Closed as program error.

Error description

  • Issue reported : When using just the JRE, this program works
    fine.
    When a standard WebSphere Application Server jar file is added
    to the classpath, the deserialization fails with an exception.
    
    Case description:
    This fix is for tWAS 8.5, 9.0 and Liberty
    
    WebSphere Application Server (Liberty, version 21.0.0.9) jar
    $ java -classpath
    ../bin:$WLP/lib/com.ibm.ws.xlxp.1.5.3_1.0.56.jar
    com.example.JaxbTest
    
    WebSphere Application Server (tWAS) jar version 8.5.5.20:
    
    $ WAS=.../AppServer
    $ java -classpath ../bin:$WAS/plugins/com.ibm.ws.prereq.xlxp.jar
    com.example.JaxbTest
    $ java -classpath
    ../bin:$WAS/runtimes/com.ibm.jaxws.thinclient_8.5.0.jar
    com.example.JaxbTest
    
    Each of the three mentioned jars contains a files
    META-INF/services/javax.xml.bind.JAXBContext.
    
    Exception:
    
    java.lang.ArrayIndexOutOfBoundsException: Array index out of
    range: -1
    	at com.ibm.xml.xlxp2.scan.util.XMLCharacterProperties.nameStar
    tChar10(XMLCharacterProperties.java:419)
    	at com.ibm.xml.xlxp2.jaxb.unmarshal.impl.DeserializationContex
    t$JAXPQNameProducer.parseQNameUnbuffered(DeserializationContext
    .java:1669)
    	at com.ibm.xml.xlxp2.jaxb.unmarshal.impl.DeserializationContex
    t$JAXPQNameProducer.parseQName(DeserializationContext.java:1645)
    	at com.ibm.xml.xlxp2.jaxb.unmarshal.impl.DeserializationContex
    t$JAXPQNameProducer.getQNameValue(DeserializationContext.java:1
    633)
    	at com.ibm.xml.xlxp2.jaxb.unmarshal.impl.DeserializationContex
    t.getQNameValue(DeserializationContext.java:1359)
    	at com.example.jaxb.Data_JAXB_Deserialization_Stub.writeAttrib
    uteProperty(com.example.jaxb.Data_JAXB_Deserialization_Stub.jav
    a)
    	at com.ibm.xml.xlxp2.jaxb.unmarshal.impl.DeserializationStub.w
    riteAttributeProperties(DeserializationStub.java:216)
    	at com.example.jaxb.Data_JAXB_Deserialization_Stub.start(com.e
    xample.jaxb.Data_JAXB_Deserialization_Stub.java)
    	at com.ibm.xml.xlxp2.jaxb.unmarshal.impl.DeserializationContex
    t.startComplexType(DeserializationContext.java:702)
    	at com.ibm.xml.xlxp2.jaxb.unmarshal.impl.DeserializationContex
    t.handleRootElementEvent(DeserializationContext.java:313)
    	at com.ibm.xml.xlxp2.jaxb.unmarshal.impl.DeserializationContex
    t.handleRootElementEvent(DeserializationContext.java:279)
    	at com.ibm.xml.xlxp2.jaxb.unmarshal.impl.JAXBDocumentScanner.p
    roduceRootElementEvent(JAXBDocumentScanner.java:176)
    	at com.ibm.xml.xlxp2.scan.DocumentScanner.scanRootElement(Docu
    mentScanner.java:2245)
    	at com.ibm.xml.xlxp2.scan.DocumentScanner.scanProlog(DocumentS
    canner.java:1733)
    	at com.ibm.xml.xlxp2.scan.DocumentScanner.nextEvent(DocumentSc
    anner.java:1323)
    	at com.ibm.xml.xlxp2.scan.DocumentScanner.parseDocumentEntity(
    DocumentScanner.java:1175)
    	at com.ibm.xml.xlxp2.jaxb.unmarshal.impl.JAXBDocumentScanner.u
    nmarshal(JAXBDocumentScanner.java:147)
    	at com.ibm.xml.xlxp2.jaxb.unmarshal.UnmarshallerImpl.unmarshal
    (UnmarshallerImpl.java:131)
    	at com.ibm.xml.xlxp2.jaxb.unmarshal.AbstractUnmarshallerImpl.u
    nmarshal(AbstractUnmarshallerImpl.java:81)
    	at com.example.JaxbTest.main(JaxbTest.java:21)
    

Local fix

  • And setting
    System.setProperty("com.ibm.xml.xlxp.jaxb.opti.level", "2");
    looks like a work around.
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of IBM WebSphere Application      *
    *                  Server                                      *
    ****************************************************************
    * PROBLEM DESCRIPTION: Array index out of bounds exception     *
    *                      when                                    *
    *                      unmarshalling XML into QName Java type  *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    Array index out of bounds exception from JAXB processor when
    unmarshalling XML into QName Java type with multi-byte UTF-8
    characters.
    

Problem conclusion

Temporary fix

Comments

APAR Information

  • APAR number

    PH46247

  • Reported component name

    WEBSPHERE APP S

  • Reported component ID

    5724J0800

  • Reported release

    900

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2022-05-09

  • Closed date

    2022-07-25

  • Last modified date

    2022-09-08

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    WEBSPHERE APP S

  • Fixed component ID

    5724J0800

Applicable component levels

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"9.0","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
08 September 2022