IBM Support

PI80477: JAXB FAILS TO UNMARSHAL ARRAYS WITH CUSTOM TYPE INSIDE @XMLELEMENT ANNOTATION

Fixes are available

9.0.0.5: WebSphere Application Server traditional V9.0 Fix Pack 5
8.0.0.14: WebSphere Application Server V8.0 Fix Pack 14
9.0.0.6: WebSphere Application Server traditional V9.0 Fix Pack 6
8.5.5.13: WebSphere Application Server V8.5.5 Fix Pack 13
9.0.0.7: WebSphere Application Server traditional V9.0 Fix Pack 7
8.0.0.15: WebSphere Application Server V8.0 Fix Pack 15
9.0.0.8: WebSphere Application Server traditional V9.0 Fix Pack 8
8.5.5.14: WebSphere Application Server V8.5.5 Fix Pack 14
9.0.0.9: WebSphere Application Server traditional V9.0 Fix Pack 9
9.0.0.10: WebSphere Application Server traditional V9.0 Fix Pack 10
8.5.5.15: WebSphere Application Server V8.5.5 Fix Pack 15
9.0.0.11: WebSphere Application Server traditional V9.0 Fix Pack 11
9.0.5.0: WebSphere Application Server traditional Version 9.0.5 Refresh Pack
9.0.5.1: WebSphere Application Server traditional Version 9.0.5 Fix Pack 1
9.0.5.2: WebSphere Application Server traditional Version 9.0.5 Fix Pack 2
8.5.5.17: WebSphere Application Server V8.5.5 Fix Pack 17
9.0.5.3: WebSphere Application Server traditional Version 9.0.5 Fix Pack 3
9.0.5.4: WebSphere Application Server traditional Version 9.0.5 Fix Pack 4
9.0.5.5: WebSphere Application Server traditional Version 9.0.5 Fix Pack 5
WebSphere Application Server traditional 9.0.5.6
9.0.5.7: WebSphere Application Server traditional Version 9.0.5 Fix Pack 7
9.0.5.8: WebSphere Application Server traditional Version 9.0.5.8
8.5.5.20: WebSphere Application Server V8.5.5.20
8.5.5.18: WebSphere Application Server V8.5.5 Fix Pack 18
8.5.5.19: WebSphere Application Server V8.5.5 Fix Pack 19
9.0.5.9: WebSphere Application Server traditional Version 9.0.5.9
9.0.5.10: WebSphere Application Server traditional Version 9.0.5.10
8.5.5.16: WebSphere Application Server V8.5.5 Fix Pack 16
8.5.5.21: WebSphere Application Server V8.5.5.21
9.0.5.11: WebSphere Application Server traditional Version 9.0.5.11

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Test showing the problem:
    
    The Input XML is:
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <BSSampleEvent><intArray>42</intArray><intArra y>13</intArray>
    </BS SamplEvent>
    
    Unmarshal snippet:
    
    public static void main(String[] args) throws
    UnsupportedEncodingException {
          BSSampleEvent result = JAXB.unmarshal(new
    ByteArrayInputStream
    ("...".getBytes("UTF8")), BSSampleEvent.class);
          System.out.println("intArray out: " +
    Arrays.toString(result.
    getIntArray()));
          if (!Arrays.equals(new int[] {42, 13},
    result.getIntArray())) {
             throw new AssertionError("Arrray not correct");
          }
       }
    
    The expected result after unmarshalling is that the field
    intArray is set to {43,13} but the actual result is null.
    

Local fix

  • Disable JAXB unmarshalling optimization by setting
    com.ibm.xml.xlxp.jaxb.opti.level to 2 or 0.
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of IBM WebSphere Application      *
    *                  Server                                      *
    ****************************************************************
    * PROBLEM DESCRIPTION: JAXB produces null value when           *
    *                      unmarshalling primitive type arrays     *
    *                      annotated with @XMLElement annotation   *
    *                      containing custom type.                 *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    Problem is resolved and the to enable the fix requires a JVM
    this system property to be set. Default value is false.
    -Djaxb.fp.fallback.for.typed.arrays=true
    

Problem conclusion

Temporary fix

  • There are 2 possible fixes:
    1. Remove type attribute from @XMLElement annotation on the
    primitive array
    2. Enable com.ibm.xml.xlxp.jaxb.opti.level=2 system property
    

Comments

APAR Information

  • APAR number

    PI80477

  • Reported component name

    WEBS APP SERV N

  • Reported component ID

    5724H8800

  • Reported release

    800

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2017-04-24

  • Closed date

    2017-05-25

  • Last modified date

    2017-05-25

  • 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

    WEBS APP SERV N

  • Fixed component ID

    5724H8800

Applicable component levels

  • R800 PSY

       UP

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

Document Information

Modified date:
04 May 2022