IBM Support

PI70397: RDZ/IDZ EDITING A COBOL WITH A PREPROCESSOR THAT HAS MULTIPLE MACROS AND COMMA FOR DECIMAL FAILS

Subscribe

You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description

  • IBM Developer for z Systems - IDz v14.0
    Rational Developer for System z - RDz v9.5.1
    
    If you are editing a COBOL program that contains multiple
    macros that are processed by a PreProcessor defined for the
    COBOL editor that also defines the decimal point as a comma
    then you may get unexpected results and find this Java
    NullPointerException in the
    <client workspace>\.metadata\.log file:
    
    java.lang.NullPointerException
      at com.ibm.systemz.common.editor.parse.SectionedPrsStream$1.
        compare(SectionedPrsStream.java:932)
      at com.ibm.systemz.common.editor.parse.SectionedPrsStream$1.
        compare(SectionedPrsStream.java:1)
      at java.util.TreeMap.put(TreeMap.java:563)
      at com.ibm.systemz.common.editor.parse.SectionedPrsStream.
        registerSection(SectionedPrsStream.java:1296)
        .......
    
    For example,
    Macro code in the program is:
         + FC;
         + WS:
    
    When you run the preprocessor these are replaced by:
           ENVIRONMENT DIVISION.
           CONFIGURATION SECTION.
           SPECIAL-NAMES.
               DECIMAL-POINT IS COMMA.
           WORKING-STORAGE SECTION.
          * ---------------------------------------------
           01  WS-PROGRAM    PIC X(08)  VALUE 'CUSVSAM'.
           01  WS-LITERAL-WS PIC X(48)  VALUE
                '        WORKING STORAGE STARTS HERE'.
    
           .....
    
                  COMPUTE W-CUST-NO  ROUNDED = W-CUST-NO
    
                                     + (5 * 100
    
                                          * 0,01)
    
    
    The parser error on the line where the  "* 0,01)" is gone but
    there is an error on the line that has the +FC
    
    
    When you hover over the error marker on the +FC it states,
    
    "Preprocessor Statement resolution contains the following error:
    
    "EJECT" expected instead of this input".
    
    Then the comma is not parsed in the following
    COBOL COMPUTE instruction:
    COMPUTE WA-TEST ROUNDED = WA-TEST
                   + (5 * 100 * 0,01)
    

Local fix

  • If you use only 1 macro then you will not see this issue
    

Problem summary

  • The state of the "Decimal Point is Comma" is not maintained when
     there are multiple pre-processor statements.
    

Problem conclusion

  • The "Decimal Point is Comma" was being reset for each
    preprocessor statement.  Code changes have been made to ensure
    that the state of the "Decimal Point is Comma" is maintained
    when multiple pre-processor statements are present.
    
    The problem listed in this APAR has been resolved with
    IBM Rational Developer for z Systems V9.5.1.6 Fix Pack which
    is available from the Recommended Fixes support download page:
    http://www-1.ibm.com/support/docview.wss?rs=2294&uid=swg27006335
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI70397

  • Reported component name

    EXP FOR Z/OS CL

  • Reported component ID

    5655EXP00

  • Reported release

    950

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2016-10-07

  • Closed date

    2017-11-30

  • Last modified date

    2017-11-30

  • 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

    DEV FOR Z SYS

  • Fixed component ID

    5724T0700

Applicable component levels

  • R951 PSY

       UP



Document information

More support for: Rational Developer for System z

Software version: 950

Reference #: PI70397

Modified date: 30 November 2017