APAR status
Closed as program error.
Error description
When an application using the MQ V8.0.0.5 classes for Java connects to a queue manager using the CLIENT transport and calls the method: MQQueueManager.accessTopic(MQDestination,String,String,int) to open a topic destination, an ArrayIndexOutOfBoundsException is thrown and an FFDC containing the following information is generated: **************************************************************** Source Class :- com.ibm.mq.jmqi.remote.api.RemoteFAP Source Method :- MQOPEN(Hconn,MQOD,int,Phobj,Pint,Pint,RemoteHobj) ProbeID :- 99 Data ---- | Description :- MQOPEN - ArrayIndexOutOfBoundsException | buffer contents :- <data buffer> | policyLength :- 1447646032 | policyOffset :- 793988426 | policyReadPos :- 552 | rMQAPI.getRfpBuffer().length :- 32764 | rMQAPI.getRfpOffset() :- 0 Stack trace ----------- | FFST Location :- java.lang.Exception | at com.ibm.msg.client.commonservices.trace.Trace. getCurrentPosition(Trace.java:2146) | at com.ibm.msg.client.commonservices.trace.Trace. createFFSTString(Trace.java:2056) | at com.ibm.msg.client.commonservices.trace.Trace. ffstInternal(Trace.java:1938) | at com.ibm.msg.client.commonservices.trace.Trace. ffst(Trace.java:1739) | at com.ibm.mq.jmqi.remote.api.RemoteFAP. MQOPEN(RemoteFAP.java:3503) | at com.ibm.mq.jmqi.remote.api.RemoteFAP. MQOPEN(RemoteFAP.java:3131) | at com.ibm.mq.jmqi.monitoring.JmqiInterceptAdapter. MQOPEN(JmqiInterceptAdapter.java:532) | at com.ibm.mq.ese.jmqi.ESEJMQI.MQOPEN(ESEJMQI.java:452) : : : : : ****************************************************************
Local fix
Problem summary
**************************************************************** USERS AFFECTED: This issue affects users of: - The MQ V8 classes for Java who have applications that connect to a queue manager using the CLIENT transport, make use of Advanced Message Security (AMS) functionality, and access topics by calling one of the methods shown below: - MQQueueManager.accessTopic(MQDestination, String, String, int) - MQQueueManager.accessTopic(MQDestination, String, String, int, String) - MQQueueManager.accessTopic(MQDestination, String, String, int, String, String) - MQQueueManager.accessTopic(MQDestination, String, String, int, String, String, Hashtable) - MQQueueManager.accessTopic( String, String, int, int) - MQQueueManager.accessTopic( String, String, int, int, String) - MQQueueManager.accessTopic( String, String, int, int, String, String) - MQQueueManager.accessTopic( String, String, int, int, String, String, Hashtable) Platforms affected: MultiPlatform **************************************************************** PROBLEM DESCRIPTION: When an application calls one of the following methods: - MQQueueManager.accessTopic(MQDestination, String, String, int) - MQQueueManager.accessTopic(MQDestination, String, String, int, String) - MQQueueManager.accessTopic(MQDestination, String, String, int, String, String) - MQQueueManager.accessTopic(MQDestination, String, String, int, String, String, Hashtable) - MQQueueManager.accessTopic( String, String, int, int) - MQQueueManager.accessTopic( String, String, int, int, String) - MQQueueManager.accessTopic( String, String, int, int, String, String) - MQQueueManager.accessTopic( String, String, int, int, String, String, Hashtable) the MQ classes for Java will: - Construct an MQOD (Object descriptor) structure containing information about the topic that the application wants to access. - Send the MQOD to the queue manager as part of an MQOPEN API call. The queue manager receives the MQOPEN request, and processes it. As part of this processing, it will update any output fields in the MQOD. When the MQOPEN API call has completed, the queue manager sends back an MQOPEN reply containing the updated MQOD. If the MQOPEN reply contained a Version 4 MQOD structure that had a value for the "ResObjectString" field, then the MQ classes for Java were unable to process the Advanced Message Security (AMS) policy data for the topic within the returned MQOD correctly. As a result, an ArrayIndexOutOfBoundsException was thrown back to the application and an FFDC was generated containing the information shown below: **************************************************************** Source Class :- com.ibm.mq.jmqi.remote.api.RemoteFAP Source Method :- MQOPEN(Hconn,MQOD,int,Phobj,Pint,Pint,RemoteHobj) ProbeID :- 99 Data ---- | Description :- MQOPEN - ArrayIndexOutOfBoundsException | buffer contents :- <data buffer> | policyLength :- 1447646032 | policyOffset :- 793988426 | policyReadPos :- 552 | rMQAPI.getRfpBuffer().length :- 32764 | rMQAPI.getRfpOffset() :- 0 Stack trace ----------- | FFST Location :- java.lang.Exception | at com.ibm.msg.client.commonservices.trace.Trace. getCurrentPosition(Trace.java:2146) | at com.ibm.msg.client.commonservices.trace.Trace. createFFSTString(Trace.java:2056) | at com.ibm.msg.client.commonservices.trace.Trace. ffstInternal(Trace.java:1938) | at com.ibm.msg.client.commonservices.trace.Trace. ffst(Trace.java:1739) | at com.ibm.mq.jmqi.remote.api.RemoteFAP. MQOPEN(RemoteFAP.java:3503) | at com.ibm.mq.jmqi.remote.api.RemoteFAP. MQOPEN(RemoteFAP.java:3131) | at com.ibm.mq.jmqi.monitoring.JmqiInterceptAdapter. MQOPEN(JmqiInterceptAdapter.java:532) | at com.ibm.mq.ese.jmqi.ESEJMQI.MQOPEN(ESEJMQI.java:452) : : : : : ****************************************************************
Problem conclusion
The MQ classes for Java have been updated to correctly handle version 4 MQOD structures that contain a value for the "ResObjectString" field. This allows them to access any AMS policy data for the topic that the application wants to open. --------------------------------------------------------------- The fix is targeted for delivery in the following PTFs: Version Maintenance Level v8.0 8.0.0.6 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
IT18190
Reported component name
WMQ BASE MULTIP
Reported component ID
5724H7251
Reported release
800
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2016-12-01
Closed date
2016-12-16
Last modified date
2017-03-10
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 BASE MULTIP
Fixed component ID
5724H7251
Applicable component levels
R800 PSY
UP
[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"8.0.0.0","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]
Document Information
Modified date:
10 March 2017