IBM Support

IJ24012: JAVA.UTIL.ZIP.DEFLATER OPERATIONS THROW JAVA.LANG.INTERNALERROR

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Error Message: A java.lang.InternalError with reason of "An
    unsupported level was specified" or "buffer error" is received
    when a user attempts to invoke java.util.zip.Deflater APIs.
    .
    Stack Trace: java.lang.InternalError: An unsupported level was
    specified
    at java.util.zip.Deflater.deflate(Deflater.java:444)
    at java.util.zip.Deflater.deflate(Deflater.java:366)
    or
    java.lang.InternalError: buffer error
    at java.util.zip.Deflater.deflateBytes(Native Method)
    at java.util.zip.Deflater.deflate(Deflater.java:455)
    at java.util.zip.Deflater.deflate(Deflater.java:377)
    .
    This issue is observed only on z/OS and Linux on Z, running on
    either:
    1. IBM z15 or LinuxONE III with its zEDC Integrated Accelerator
    2. IBM zEC12 or later, or LinuxONE or LinuxONE II, with the zEDC
    Express Adapter Card installed and enabled.
    

Local fix

  • On z/OS, this issue can be worked around by specifying the
    following environment variable:
    _HZC_COMPRESSION_METHOD=SOFTWARE
    On Linux running on IBM z15 or LinuxONE III, this issue can be
    worked around by specifying the following environmment variable:
    DFLTCC_LEVEL_MASK=0x0000
    On Linux running on IBM zEC12, z13, z14, LinuxONE or LinuxONE II
    with zEDC Express Adaptor Card installed, this issue can be
    worked around by specifying the following environment variable:
    ZLIB_DEFLATE_IMPL=0x0
    The above options will force the Deflate compression operations
    to utilize a software based implementation, and may result in a
    performance degradation if hardware implementations were used
    before.   The options may also be picked up by other non-Java
    workloads that utilizes zlib implementation.
    

Problem summary

  • A java.lang.InternalError with reason of "An unsupported level
    was specified" or "buffer error" is received when a user
    attempts to change the compression level of an existing Deflater
    instance via java/util/zip/Deflater.setLevel() API.  This API
    was not properly supported if the compression operations were
    performed with hardware-based acceleration.
    

Problem conclusion

  • Fix is provided to properly handle the requested compression
    level change by reverting back to a software-based compression
    implementation.
    .
    This APAR will be fixed in the following Java Releases:
       8    SR6 FP15  (8.0.6.15)
    .
    Contact your IBM Product's Service Team for these Service
    Refreshes and Fix Packs.
    For those running stand-alone, information about the available
    Service Refreshes and Fix Packs can be found at:
               https://www.ibm.com/developerworks/java/jdk/
    

Temporary fix

Comments

APAR Information

  • APAR number

    IJ24012

  • Reported component name

    JAVA CLASS LIBS

  • Reported component ID

    620700130

  • Reported release

    800

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2020-03-31

  • Closed date

    2020-07-29

  • Last modified date

    2020-07-29

  • 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

    JAVA CLASS LIBS

  • Fixed component ID

    620700130

Applicable component levels

  • R800 PSY

       UP

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSNVBF","label":"Runtimes for Java Technology"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"8.0","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
22 February 2022