IBM Support

PM96609: Java 7: Applications using classes compiled by old JDK v1.1 may fail after DC configuration

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • ---------------------------------------------
    Users Affected:
    
    Users running applications with old Java classes that were
    compiled with JDK 1.1
    ---------------------------------------------
    
    Problem Description:
    
    Applications with old java classes can't be initialized due to
    classes conflicts after the ITCAM Data Collector is configured.
    
    Error messages like the following can be seen in
    trace-dc-bcm.log:
    
    java.lang.RuntimeException: JSR/RET are not supported with
    computeFrames option
     at org.objectweb.asm.Frame.execute(Frame.java:1146)
     at
    org.objectweb.asm.MethodWriter.visitJumpInsn(MethodWriter.java(C
    ompiled Code))
     at
    org.objectweb.asm.tree.JumpInsnNode.accept(JumpInsnNode.java(Com
    piled Code))
     at
    org.objectweb.asm.tree.InsnList.accept(InsnList.java(Compiled
    Code))
     at
    org.objectweb.asm.tree.MethodNode.accept(MethodNode.java:479)
     at
    org.objectweb.asm.tree.MethodNode.accept(MethodNode.java:412)
     at org.objectweb.asm.tree.ClassNode.accept(ClassNode.java:275)
     at
    com.ibm.tivoli.itcam.toolkit.ai.bci.engine.BCIHelper.getClassByt
    es(BCIHelper.java:940)
     at
    com.ibm.tivoli.itcam.toolkit.ai.bci.engine.Probifier.instrumentC
    lass(Probifier.java:1198)
     at
    com.ibm.tivoli.itcam.toolkit.ai.bci.engine.Probifier.weaveClass(
    Probifier.java(Compiled Code))
     at
    com.ibm.tivoli.itcam.toolkit.ai.bcm.BcmAnchor.invokeProbifier(Bc
    mAnchor.java(Compiled Code))
     at
    com.ibm.tivoli.itcam.toolkit.ai.bcm.BcmAnchor.instrumentClass(Bc
    mAnchor.java(Compiled Code))
     at
    com.ibm.tivoli.itcam.toolkit.ai.bcm.BcmAnchor.instrumentClass(Bc
    mAnchor.java(Inlined Compiled Code))
     at
    com.ibm.tivoli.itcam.toolkit.ai.bcm.bootstrap.BcmBootstrap$5.run
    (BcmBootstrap.java(Compiled Code))
     at java.security.AccessController.doPrivileged1(Native Method)
     at
    java.security.AccessController.doPrivileged(AccessController.jav
    a(Compiled Code))
     at
    com.ibm.tivoli.itcam.toolkit.ai.bcm.bootstrap.BcmBootstrap.instr
    umentClass(BcmBootstrap.java(Compiled Code))
     at
    com.ibm.tivoli.itcam.toolkit.ai.bcm.bootstrap.BcmBootstrap$4.run
    (BcmBootstrap.java(Compiled Code))
     at java.security.AccessController.doPrivileged1(Native Method)
     at
    java.security.AccessController.doPrivileged(AccessController.jav
    a(Compiled Code))
     at
    com.ibm.tivoli.itcam.toolkit.ai.bcm.bootstrap.BcmBootstrap.instr
    umentClassStatic(BcmBootstrap.java(Compiled Code))
    
    and in WebSphere SystemOut.log:
    
    java.lang.LinkageError: JVMCL048:redefine of class
    com/ibm/mq/MQSESSION (&name=ED721F78). old_cb=10465DA0,
    new_cb=104659F8, (&old_name=ED721F78)
    old_name=com/ibm/mq/MQSESSION
     at java.lang.ClassLoader.defineClass0(Native Method)
     at
    java.lang.ClassLoader.cynprobe$defineClass0(ClassLoader.java(Inl
    ined Compiled Code))
     at java.lang.ClassLoader.defineClass(ClassLoader.java(Compiled
    Code))
     at
    java.security.SecureClassLoader.defineClass(SecureClassLoader.ja
    va(Compiled Code))
     at
    java.net.URLClassLoader.defineClass(URLClassLoader.java(Compiled
    Code))
     at
    java.net.URLClassLoader.access$500(URLClassLoader.java(Inlined
    Compiled Code))
     at
    java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java(Comp
    iled Code))
     at java.security.AccessController.doPrivileged1(Native Method)
     at
    java.security.AccessController.doPrivileged(AccessController.jav
    a(Compiled Code))
     at
    java.net.URLClassLoader.findClass(URLClassLoader.java(Compiled
    Code))
     at
    com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.jav
    a(Compiled Code))
     at java.lang.ClassLoader.loadClass(ClassLoader.java(Compiled
    Code))
     at java.lang.ClassLoader.loadClass(ClassLoader.java(Compiled
    Code))
     at
    com.ibm.mq.MQQueueManager.obtainBaseMQQueueManager(MQQueueManage
    r.java:761)
     at com.ibm.mq.MQQueueManager.construct(MQQueueManager.java:705)
     at com.ibm.mq.MQQueueManager.<init>(MQQueueManager.java:434)
    
    
    The problem is happening since support was added for JDK 1.7
    compiled classes that require creation of an internal
    StackMapTable (introduced in ITCAM for AD 7.1 FP3+IF5).
    
    The root cause is handling of really old Java classes that were
    compiled with JDK 1.1. The internal class version number for JDK
    1.1 is very different and does not follow the pattern since JDK
    1.2.This requires using a special handling for this class
    version number.
    

Local fix

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    
    Java 7 runtime environments that uses classes compiled with
    JDK v1.1 (for example, old MQ classes or DB2 driver classes).
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    
    Applications with old java classes cannot be instrumented due to
    classes conflicts after the ITCAM Data Collector is configured.
    
    Error messages like the following can be seen in
    trace-dc-bcm.log:
    
    java.lang.RuntimeException: JSR/RET are not supported with
    computeFrames option
     at org.objectweb.asm.Frame.execute(Frame.java:1146)
     at
    org.objectweb.asm.MethodWriter.visitJumpInsn(MethodWriter.java(C
    ompiled Code))
     at
    org.objectweb.asm.tree.JumpInsnNode.accept(JumpInsnNode.java(Com
    piled Code))
     at
    org.objectweb.asm.tree.InsnList.accept(InsnList.java(Compiled
    Code))
     at
    org.objectweb.asm.tree.MethodNode.accept(MethodNode.java:479)
     at
    org.objectweb.asm.tree.MethodNode.accept(MethodNode.java:412)
     at org.objectweb.asm.tree.ClassNode.accept(ClassNode.java:275)
     at
    com.ibm.tivoli.itcam.toolkit.ai.bci.engine.BCIHelper.getClassByt
    es(BCIHelper.java:940)
     at
    com.ibm.tivoli.itcam.toolkit.ai.bci.engine.Probifier.instrumentC
    lass(Probifier.java:1198)
     at
    com.ibm.tivoli.itcam.toolkit.ai.bci.engine.Probifier.weaveClass(
    Probifier.java(Compiled Code))
     at
    com.ibm.tivoli.itcam.toolkit.ai.bcm.BcmAnchor.invokeProbifier(Bc
    mAnchor.java(Compiled Code))
     at
    com.ibm.tivoli.itcam.toolkit.ai.bcm.BcmAnchor.instrumentClass(Bc
    mAnchor.java(Compiled Code))
     at
    com.ibm.tivoli.itcam.toolkit.ai.bcm.BcmAnchor.instrumentClass(Bc
    mAnchor.java(Inlined Compiled Code))
     at
    com.ibm.tivoli.itcam.toolkit.ai.bcm.bootstrap.BcmBootstrap$5.run
    (BcmBootstrap.java(Compiled Code))
     at java.security.AccessController.doPrivileged1(Native Method)
    
    The problem is happening since support was added for JDK 1.7
    compiled classes that require creation of an internal
    StackMapTable (introduced in ITCAM for AD 7.1 FP3+IF5).
    
    The root cause is handling of really old Java classes that were
    compiled with JDK 1.1. The internal class version number for JDK
    1.1 is very different and does not follow the pattern since JDK
    1.2.This requires using a special handling for this class
    version number.
    
    ****************************************************************
    

Problem conclusion

  • Though the above exception can be ignored as ITCAM will simply
    not continue with the instrumentation, the ITCAM trace logs may
    have a number of these exceptions.
    
    The fix for this APAR is contianed in the following maintenance
    releases:
    
     | interim fix | 7.1.0.3-TIV-ITCAMAD-IF0008
     | interim fix | 6.1.0.6-TIV-ITCAMJ2EE_MP-IF0006
    

Temporary fix

Comments

APAR Information

  • APAR number

    PM96609

  • Reported component name

    TCAM AD WAS DC

  • Reported component ID

    5724Y92DC

  • Reported release

    710

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2013-09-09

  • Closed date

    2013-11-06

  • Last modified date

    2013-11-06

  • 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

    TCAM AD WAS DC

  • Fixed component ID

    5724Y92DC

Applicable component levels

  • R710 PSY

       UP

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SS3PGL","label":"Tivoli Composite Application Manager for WebSphere"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"710","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
27 July 2021