IBM Support

PH56146: JAVA/COBOL INTEROPERABILITY FIXES/IMPROVEMENTS - AUGUST 2023

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • The problems fixed are:
    - Fixed problem with blank lines in the "methods" input file of
    the cjbuild utility causing the utility to hang
    - Fixed problem with Java programs not being able to correctly
    access the data in COBOL  ODO tables shared with Java
    - Fixed problem with data items defined with PIC X/U DYNAMIC not
    being ignored by the JAVA-SHAREABLE directive
    - Fixed compile problem resulting from programs with the
    JAVA-CALLABLE directive having parameters with hyphens in their
    name
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Enterprise COBOL 6.4 building and   *
    *                 running programs that use non-OO COBOL/Java  *
    *                 interoperability support and at least one of *
    *                 the following conditions is true:            *
    *                                                              *
    *                 1. the "methods" input file for cjbuild      *
    *                 contains blank lines                         *
    *                                                              *
    *                 2. the JAVA-SHAREABLE directive is used to   *
    *                 share with Java a table defined with the     *
    *                 OCCURS DEPENDING ON clause (also known as an *
    *                 ODO table)                                   *
    *                                                              *
    *                 3. a data item defined with PIC X/U DYNAMIC  *
    *                 falls under the scope of a JAVA-SHAREABLE    *
    *                 directive                                    *
    *                                                              *
    *                 4. A parameter of a program with the         *
    *                 JAVA-CALLABLE directive contains a hyphen    *
    ****************************************************************
    * PROBLEM DESCRIPTION: 1. the cjbuild utility hangs            *
    *                                                              *
    *                      2. under certain conditions, the        *
    *                      provided Java accessor class will not   *
    *                      access the correct part of the ODO      *
    *                      table leading to incorrect results      *
    *                                                              *
    *                      3. a Java error such as the following   *
    *                      will occur when accessing the data      *
    *                      item:                                   *
    *                                                              *
    *                      Exception in thread "main"              *
    *                        java.nio.BufferOverflowException      *
    *                      at java.base/java.nio.                  *
    *                        DirectByteBuffer.put (                *
    *                          DirectByteBuffer. java:414)         *
    *                      :                                       *
    *                                                              *
    *                      4. Error when running cjbuild:          *
    *                                                              *
    *                      # Building java program: ./progs.java   *
    *                      /usr/1pp/Java/11.0_64/bin/javac -d      *
    *                        ./class -cp ./class ./progs.java      *
    *                      # Command return code 1:                *
    *                      -/progs.java:22: error: ,", *)",        *
    *                        or '[" expected                       *
    *                                                              *
    *                      public native static void MYCOB(        *
    *                        byte[] XXXXXX-TABLE);                 *
    *                                                              *
    *                      1 error                                 *
    ****************************************************************
    * RECOMMENDATION: Install the IBM-provided PTF                 *
    ****************************************************************
    1. The cjbuild utility was mishandling blank lines when loading
    the methods file contents into memory.
    
    2. The compiler was not always correctly handling ODO tables
    shared with Java, particularly in cases where the ODO table was
    nested in other tables.
    
    3. Data items defined with PIC X/U DYNAMIC were not being
    properly ignored when falling under the scope of a
    JAVA-SHAREABLE directive.
    
    4. The interoperability framework typically converts hyphens in
    COBOL names to underscores in Java but was not doing so
    correctly for the parameters of programs that contain the
    JAVA-CALLABLE directive.
    

Problem conclusion

  • The cjbuild utility was updated to correct the mishandling of
    blank lines in the methods file.
    
    The compiler was updated to (i) correct data access issues with
    ODO tables that fall under the scope of a JAVA-SHAREABLE
    directive, (ii) ignore data items defined with PIC X/U DYNAMIC
    that fall under the scope of a JAVA-SHAREABLE directive, and
    (iii) support parameter names with hyphens in programs that
    contain the JAVA-CALLABLE directive.
    

Temporary fix

Comments

  • ×**** PE23/11/14 FIX IN ERROR. SEE APAR PH58188  FOR DESCRIPTION
    ×**** PE23/11/14 FIX IN ERROR. SEE APAR PH58188  FOR DESCRIPTION
    

APAR Information

  • APAR number

    PH56146

  • Reported component name

    ENT COBOL FOR Z

  • Reported component ID

    5655EC600

  • Reported release

    640

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2023-08-01

  • Closed date

    2023-08-25

  • Last modified date

    2023-12-08

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

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

    UI93309 UI93310 UI93311 UI93312

Modules/Macros

  • IGY8RWTU IGYCASMB IGYCCBE  IGYCCCRT IGYCCICS IGYCCSRV IGYCDGEN
    IGYCDIAG IGYCDMAP IGYCEN$0 IGYCEN$1 IGYCEN$2 IGYCEN$3 IGYCEN$4
    IGYCEN$5 IGYCEN$8 IGYCEN$D IGYCEN$R IGYCFGEN IGYCFREE IGYCINIT
    IGYCJA$0 IGYCJA$1 IGYCJA$2 IGYCJA$3 IGYCJA$4 IGYCJA$5 IGYCJA$8
    IGYCJA$D IGYCJA$R IGYCJBLD IGYCJGEN IGYCLIBR IGYCLSTR IGYCLVL0
    IGYCLVL1 IGYCLVL2 IGYCLVL3 IGYCLVL8 IGYCMALL IGYCOB2  IGYCOSCN
    IGYCPGEN IGYCRCTL IGYCRDPR IGYCRDSC IGYCREAL IGYCRWT  IGYCSCAN
    IGYCSIMD IGYCUE$0 IGYCUE$1 IGYCUE$2 IGYCUE$3 IGYCUE$4 IGYCUE$5
    IGYCUE$8 IGYCUE$D IGYCUE$R IGYCXREF IGYDRV   IGYEQCWI IGYMSGE
    IGYMSGK  IGYMSGT  IGYQCBE  IGYQSPLT IGYZQEN6 IGYZQENU IGYZQJP6
    IGYZQJPN
    

Fix information

  • Fixed component name

    ENT COBOL FOR Z

  • Fixed component ID

    5655EC600

Applicable component levels

  • R640 PSY UI93309

       UP23/08/31 P F308

  • R641 PSY UI93310

       UP23/08/31 P F308

  • R642 PSY UI93311

       UP23/08/31 P F308

  • R64H PSY UI93312

       UP23/08/31 P F308

Fix is available

  • Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SS6SG3","label":"Enterprise COBOL for z\/OS"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"640","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
08 December 2023