IBM Support

IT32760: TRANSLATOR USER EXIT JAVA.LANG.STRING DOES NOT HANDLE EMPTY STRING FIELD IN MAP AND FAILS FOR SUBSEQUENT NON-EMPTY STRINGS

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

APAR status

  • Closed as program error.

Error description

  • Problem Statement:
    A map using
    java.lang.String as a User Exit within extended rules. The
    Object tried to use the Constructor passing a String as an
    argument. In this case the String was a reference to a String
    field in the map. However, in the case where the map String is
    empty or undefined, the Constructor throws an
    InvocationTargetException.
    Simulation Steps:
    Translate attached
    file in attached map using translation only business process.
    Process runs continuously creating large tx.log files.
    If a
    value is added to PARTNO field (D10 record position 5) it
    completes successfully.
    Supporting Documentation/Asset
    Location:
    CEVA_CLASS_3M_I_PARTEX_FF_SPE_BAD.mxl,
    CEVA_CLASS_3M_I_PARTEX_FF_SPE_BAD.txo, GIODECevaLegacy1.input
    files in sf case TS003111773
    Observations:
    Once this happens,
    the compiled opcodes become corrupt in some way since all
    attempts to use the String User Exit fail even when the map
    String field contains content.
    Expected Behavior:
    First, the
    opcodes should be able to handle the empty String scenario.
    Second, if the InvocationTargetException is invoked, the
    opcodes need to execute correctly for subsequent data that is
    valid.
    Business Impact:
    The problem map has a field that is
    processed many times with a large input file. Therefore,
    exception logging completely fills up the disk and brings
    the system down.
    

Local fix

  • STRRTC -B2BISFG-52230
    OAQ
    Circumvention: User should check for
    empty value before using the java.lang.String to create an
    object
    

Problem summary

  • Users Affected:
    All customers using B2BI EDI standards.
    
    Problem Description:
     A map using java.lang.String as a User Exit
    
     within extended rules. The Object tried to use the Constructor
    passing a String as an argument. In this case the String was a
    reference to a String field in the map. However, in the case
    where the map String is empty or undefined, the Constructor
    throws an InvocationTargetException.
    Simulation Steps:
    Translate attached file in attached map using translation only
    business process. Process runs continuously creating large
    tx.log files.
    If a value is added to PARTNO field (D10 record position 5) it
    completes successfully.
    
    
    Platforms Affected:
    All Platforms
    

Problem conclusion

  • Resolution Summary:
    A code fix is provided.
    When a call to create a java string with null value from
    extended rules fails , the translator is supposed to report the
    error then remove these parameters "the class type and its
    initial value" from the parameters' list, but the translator
    exited
    prematurely before that, hence the parameters' list kept getting
    bigger and bigger, and the reported error was getting bigger
    causing the log files to get filled and the hang.
    This behavior was corrected, the translator removes the
    parameters entry every time it handles them whether it fails or
    succeeds.
    
    Delivered in:
    5020603_15
    6000005
    5020605_3
    

Temporary fix

Comments

APAR Information

  • APAR number

    IT32760

  • Reported component name

    STR B2B INTEGRA

  • Reported component ID

    5725D0600

  • Reported release

    526

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2020-05-05

  • Closed date

    2020-06-25

  • Last modified date

    2020-10-13

  • 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

    STR B2B INTEGRA

  • Fixed component ID

    5725D0600

Applicable component levels

[{"Line of Business":{"code":"LOB02","label":"AI Applications"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SS3JSW","label":"IBM Sterling B2B Integrator"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"5.2.6"}]

Document Information

Modified date:
14 October 2020