IBM Support

PI53306: REGRESSION IN COMPARISONS OF 0-LENGTH STRING LITERALS TO NUM FIELDS.

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • A regression is observed from 8012 behavior in comparisons of
    0-length String literals to Num fields. The correct logic should
    be doing a character comparison instead of calling the numeric
    conversion routine to get the value.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * Users that compare NUM fields against the 0-length literal   *
    * "" when using textLiteralDefaultIsString=NO.                 *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * A comparison of a NUM field against a 0-length literal can   *
    * produce improper results. The field should be byte compared  *
    * in this case. This is a regression due to a previous APAR    *
    * that fixed 0-length string concatenations used in a binary   *
    * expression. This previous fix should not have touched the    *
    * logic for IF/WHILE statements, when the expression was a     *
    * comparison operator. Because of this regression, a callout   *
    * would be done to EZEPRC-NUMVALC to obtain the value of the   *
    * 0-length string and would return an exception (unless the    *
    * build option blanksAsZero was set to yes).                   *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    

Problem conclusion

  • The generator logic has been updated to handle both the problems
    reported. The original apar and this regression. The logic now
    checks for a binary expression that is a comparison and if so,
    will not change the 0-length string to type string, but instead
    use the char(1) value instead. This prevents the use of the
    numvalc routine and the possible exception.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI53306

  • Reported component name

    RATL BUS DEV

  • Reported component ID

    5724S5000

  • Reported release

    911

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2015-11-30

  • Closed date

    2016-04-05

  • Last modified date

    2016-04-05

  • 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

    RATL BUS DEV

  • Fixed component ID

    5724S5000

Applicable component levels

  • R901 PSY

       UP

  • R911 PSY

       UP

  • R950 PSY

       UP

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSMQ79","label":"Rational Business Developer"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"9.1.1","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
14 October 2021