APAR status
Closed as program error.
Error description
A JSON format client channel definition table (CCDT) has been created that contains the following entry: { "channel": [ { "exits": { "security": { "name": "securityName", } }, "general": { "description": "SYSTEM.DEF.SVRCONN" }, "name": "SYSTEM.DEF.SVRCONN", "clientConnection": { "connection": [ { "host": "localhost", "port": 1414 } ], "queueManager": "QM1" }, "type": "clientConnection" } ] } A JMS connection factory has been configured to use this CCDT when creating connections to QM1. When an IBM MQ 9.2 classes for JMS application looks up the connection factory, and calls the method ConnectionFactory.createContext(int), the following NullPointerException occurs: java.lang.NullPointerException at com.ibm.mq.jmqi.system.internal.ExitsAttributes.setAttributes(JS ONCCDTFileParser.java:732) at com.ibm.mq.jmqi.system.internal.ChannelDefinitionAttributes.proc essDefinition(JSONCCDTFileParser.java:330) at com.ibm.mq.jmqi.system.internal.ChannelDefinitionAttributes.proc essChannelDefinition(JSONCCDTFileParser.java:301) at com.ibm.mq.jmqi.system.internal.JSONCCDTFileParser.processJSONCh annelDefinition(JSONCCDTFileParser.java:177) at com.ibm.mq.jmqi.system.internal.JSONCCDTFileParser.parse(JSONCCD TFileParser.java:98) at com.ibm.mq.jmqi.system.internal.CCDT.<init>(CCDT.java:112) at com.ibm.mq.jmqi.remote.impl.RemoteCCDT.<init>(RemoteCCDT.java:62 ) at com.ibm.mq.jmqi.remote.api.RemoteFAP.getCcdt(RemoteFAP.java:486) ......... at com.ibm.msg.client.wmq.internal.WMQConnection.<init>(WMQConnecti on.java:383) at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createV7Pr oviderConnection(WMQConnectionFactory.java:8475) at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createProv iderConnection(WMQConnectionFactory.java:7815) at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl._createCon nection(JmsConnectionFactoryImpl.java:322) at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl.createCont ext(JmsConnectionFactoryImpl.java:543) .........
Local fix
Ensure that userData is provided in the security section.
Problem summary
**************************************************************** USERS AFFECTED: This issue affects users of the IBM MQ classes for JMS, who have applications that use connection factories that have been configured to use a JSON format client channel definition table (CCDT), where the CCDT contains a channel definition entry that includes a security exit. Platforms affected: MultiPlatform **************************************************************** PROBLEM DESCRIPTION: When parsing a JSON format client channel definition table (CCDT), the MQ classes for JMS expected that the security exit information for channel definitions would always be in the following format: "security": { "name": "securityName", "userdata": "data" } However, the "userdata" parameter was not required. This meant that it was valid for the security exit information to look like this: "security": { "name": "securityName", } If the "userdata" parameter was not included, then the MQ classes for JMS would generate a NullPointerException when it tried to parse the channel definition in the JSON format CCDT. The stack trace of the NullPointerException is shown below: java.lang.NullPointerException at com.ibm.mq.jmqi.system.internal.ExitsAttributes.setAttributes(JS ONCCDTFileParser.java:732) at com.ibm.mq.jmqi.system.internal.ChannelDefinitionAttributes.proc essDefinition(JSONCCDTFileParser.java:330) at com.ibm.mq.jmqi.system.internal.ChannelDefinitionAttributes.proc essChannelDefinition(JSONCCDTFileParser.java:301) at com.ibm.mq.jmqi.system.internal.JSONCCDTFileParser.processJSONCh annelDefinition(JSONCCDTFileParser.java:177) at com.ibm.mq.jmqi.system.internal.JSONCCDTFileParser.parse(JSONCCD TFileParser.java:98) at com.ibm.mq.jmqi.system.internal.CCDT.<init>(CCDT.java:112) at com.ibm.mq.jmqi.remote.impl.RemoteCCDT.<init>(RemoteCCDT.java:62 ) at com.ibm.mq.jmqi.remote.api.RemoteFAP.getCcdt(RemoteFAP.java:486) ......... at com.ibm.msg.client.wmq.internal.WMQConnection.<init>(WMQConnecti on.java:383) at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createV7Pr oviderConnection(WMQConnectionFactory.java:8475) at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createProv iderConnection(WMQConnectionFactory.java:7815) at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl._createCon nection(JmsConnectionFactoryImpl.java:322) at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl.createCont ext(JmsConnectionFactoryImpl.java:543) .........
Problem conclusion
The IBM MQ classes for JMS have been updated so that if if they are processing channel definitions in a JSON format CCDT which include information about a security exit and do not specify the "userdata" parameter, then the security exit will be invoked with no user data being passed in. This prevents the NullPointerException from occurring. --------------------------------------------------------------- The fix is targeted for delivery in the following PTFs: Version Maintenance Level v9.2 LTS 9.2.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
IT33794
Reported component name
MQ BASE V9.2
Reported component ID
5724H7281
Reported release
920
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2020-08-05
Closed date
2020-09-18
Last modified date
2020-09-18
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
MQ BASE V9.2
Fixed component ID
5724H7281
Applicable component levels
[{"Line of Business":{"code":"LOB45","label":"Automation"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"920"}]
Document Information
Modified date:
25 March 2021