IBM Support

IT14150: Partial match of DFDL nil literal value returns <null>

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

  • When the DFDL parser parses an element with nillable="yes" and
    dfdl:nilKind="literalValue", if the start of the element matches
    one of the nil values in dfdl:nilValue then the DFDL parser
    returns <null> for the element.  It should only return <null> if
    the whole of the element matches one of the nil values.
    

Local fix

  • Replace the nilValue of "WSP*;" (zero or more white space) with
    "%ES; %WSP+" (empty or one or more white space) which is
    logically equivalent.
    

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    All users of IBM Integration Bus V9.0 and V10.0 using the DFDL
    parser, defining elements as nillable with nilkind
    'literalValue', where one of the the nil values matches the
    start of the data value but does not match all the data value.
    
    
    Platforms affected:
    MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    When parsing an element with nillable="yes" and
    dfdl:nilKind="literalValue", the DFDL parser code uses the
    delimited scanner to perform matching of nil values. If the
    start of the element value matches one of the nil values in
    dfdl:nilValue then the DFDL parser incorrectly matches the nil
    value even though there is data remaining. It should be an exact
    match.
    
    Further, if one of the nil values is WSP* and the value has an
    MBCS encoding, then the parser incorrectly matches the nil value
    if the first byte of the element value matches the first byte of
    one of the WSP entity characters.
    
    After a match the code was not checking that the end of the
    scoped buffer was reached, and not stepping to the end of the
    matched data.
    
    Additionally if one of the nil values is WSP*, then a value of
    empty string was not being matched when it should be.
    
    The code was not setting the matched flag when WSP* matched
    empty string.
    
    Affects text and binary elements.
    

Problem conclusion

Temporary fix

Comments

APAR Information

  • APAR number

    IT14150

  • Reported component name

    INTEGRATION BUS

  • Reported component ID

    5724J0530

  • Reported release

    900

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2016-03-07

  • Closed date

    2016-05-25

  • Last modified date

    2016-05-25

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

    IT14140

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

Fix information

  • Fixed component name

    INTEGRATION BUS

  • Fixed component ID

    5724J0530

Applicable component levels

  • R900 PSY

       UP

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSNQK6","label":"IBM Integration Bus"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"9.0","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
23 March 2020