IBM Support

PM09013: The toIndex of substring is not parsed correctly causing COBOL compiler errors or NegativeArraySizeException running Java

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Rational Business Developer V7.5.1.4:
    
    Unexpected exceptions and errors occur when an assignment
    statement has a character expression on the left hand side,
    assigning a value from any ANY data type field.
    
    The problem is the length of the target (toIndex) is incorrectly
    set to an invalid value which causes the following problems:
    
    1) When debugging the EGL program, a
       java.lang.NegativeArraySizeException is received.
    
    2) When running the the EGL generated Java programs, the
       following error is received:
    
       EGL0100E An unhandled error occurred. Error:
                java.lang.NegativeArraySizeException.
    
    3) When preparing the EGL generating COBOL program, compiler
       errors are received.
    
       The following are the iSeries COBOL compiler errors received:
    
    
         *   577  MSGID: LNC1327  SEVERITY: 30  SEQNBR:  070700
                  Message . . . . :   '-1' not defined in the
                  program.  Clause ignored.
    
         *   577  MSGID: LNC1243  SEVERITY: 30  SEQNBR:  070700
                  Message . . . . : Repetition factor in PICTURE not
                  valid.  Repetition factor ignored.
    
         *   578  MSGID: LNC1327  SEVERITY: 30  SEQNBR:  070800
                  Message . . . . : '-1' not defined in the program.
                  Clause ignored.
    
         *   578  MSGID: LNC1243  SEVERITY: 30  SEQNBR:  070800
                  Message . . . . : Repetition factor in PICTURE not
                  valid.  Repetition factor ignored.
    
       The following is the zSeries COBOL compiler errors received:
    
    
         976 IGYDS1160-S Character(s) "-" were
                         found as "PICTURE" string character(s).  A
                         "PICTURE" string of "S9(1)" was assumed.
    
                         Same message on line:    977
    
    The following is an example of EGL source code which causes this
    problem:
    
      cChar char(20);
      any1 any;
      any1="AX";
      cChar[2:2+1-1] = any1;
    
    The problem in this case is the toIndex is set to -1 instead of
    2.
    

Local fix

  • A fixtest is available from support.
    

Problem summary

  • A compilation error is produced when a substring operation
    with a non trivial start and/or stop index is used as the
    target for an ANY type. In this testcase, the ANY was
    returned by a function invocation. When run in Java, this
    produces a runtime error due to a negative array subscript.
    

Problem conclusion

  • The code was changed so that the ANY type is cast (via the
    AS expression) to a type whose length is non-negative
    

Temporary fix

Comments

APAR Information

  • APAR number

    PM09013

  • Reported component name

    RATL BUS DEV

  • Reported component ID

    5724S5000

  • Reported release

    751

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2010-03-03

  • Closed date

    2010-04-14

  • Last modified date

    2010-04-14

  • 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

  • R751 PSN

       UP

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

Document Information

Modified date:
14 April 2010