IBM Support

IC88187: WEBSPHERE MQ V7 JAVA APPLICATION FAILS WITH ILLEGALARGUMENTEXCEPTION WHEN USING JAVA 7

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • A WebSphere MQ Java application running in a Java 7 Java
    Virtual Machine throws an IllegalArgumentException with the
    following stack:
    
    java.lang.IllegalArgumentException: Comparison method violates
    its general contract!
    at java.util.TimSort.mergeHi(TimSort.java:
    at java.util.TimSort.mergeAt(TimSort.java:
    at java.util.TimSort.mergeForceCollapse(TimSort.java:
    at java.util.TimSort.sort(TimSort.java:
    at java.util.TimSort.sort(TimSort.java:
    at java.util.Arrays.sort(Arrays.java:
    at com.ibm.mq.constants.MQConstants.getFields(MQConstants.
    java:320)
    

Local fix

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    This issue affects users of the WebSphere MQ classes for Java
    who are using any of the static "lookup" methods on the
    MQConstants class from an application running inside a Java 7
    Java Virtual Machine.
    
    This issue also affects users running the WebSphere MQ Explorer
    or WebSphere MQ classes for PCF within a Java 7 Java Virtual
    Machine.
    
    Users of WebSphere Application Server v8 are also affected by
    this problem, if the application server has been configured
    to run in the Java 7 environment.  One specific problem which
    has been reported with WAS 8 is that activation specifications
    do not automatically reconnect to the queue manager, in the
    even where the queue manager has been restarted.  The above
    Java stack and error message is reported in the application
    server's SystemOut.log when this problem is encountered.
    
    Platforms affected:
    All Distributed (iSeries, all Unix and Windows) +Java +Java zOS
    ****************************************************************
    PROBLEM SUMMARY:
    The Java specification defines a general contract for
    comparison, such that for three objects (a, b, c), if a<b and
    b<c, this must imply that a<c.
    
    The MQConstant comparator did not honour this contract when
    comparing the values of MQConstants with different data types.
    At Java versions earlier than 7, the Java Virtual Machine took
    no action as a result of this. At Java 7, the Java Virtual
    Machine threw an IllegalArgumentException when the contract was
    violated.
    

Problem conclusion

  • The WebSpere MQ classes for Java have been modified, such that
    the comparator used for comparing MQConstant values always
    honours the general comparison contract, even if the values are
    of different data types.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
                       v7.0
    Platform           Fix Pack 7.0.1.10
    --------           --------------------
    Windows            U200352
    AIX                U853055
    HP-UX (PA-RISC)    U853082
    HP-UX (Itanium)    U853087
    Solaris (SPARC)    U853083
    Solaris (x86-64)   U853089
    iSeries            7.0.1.10
    Linux (x86)        U853084
    Linux (x86-64)     U853088
    Linux (zSeries)    U853085
    Linux (Power)      U853086
    zOS                7.0.1.10
    
                       v7.1
    Platform           Fix Pack 7.1.0.3
    --------           --------------------
    Windows            7.1.0.3
    AIX                7.1.0.3
    HP-UX (Itanium)    7.1.0.3
    Solaris (SPARC)    7.1.0.3
    Solaris (x86-64)   7.1.0.3
    iSeries            7.1.0.3
    Linux (x86)        7.1.0.3
    Linux (x86-64)     7.1.0.3
    Linux (zSeries)    7.1.0.3
    Linux (Power)      7.1.0.3
    zOS                7.1.0.3
    
    Platform           v7.5
    --------           --------------------
    Multiplatforms     7.5.0.1
    
    The latest available maintenance can be obtained from
    'WebSphere MQ Recommended Fixes'
    http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg27006037
    
    If the maintenance level is not yet available information on
    its planned availability can be found in 'WebSphere MQ
    Planned Maintenance Release Dates'
    http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg27006309
    ---------------------------------------------------------------
    

Temporary fix

Comments

APAR Information

  • APAR number

    IC88187

  • Reported component name

    WMQ WINDOWS V7

  • Reported component ID

    5724H7220

  • Reported release

    701

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-11-13

  • Closed date

    2012-11-22

  • Last modified date

    2013-03-12

  • 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

    WMQ WINDOWS V7

  • Fixed component ID

    5724H7220

Applicable component levels

  • R701 PSY

       UP

[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSCPQ63","label":"APAR \/ Maintenance"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.0.1","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
12 March 2013