IBM Support

IC98520: WMQ V7 JMS CLIENT REPORTING MESSAGE COULD NOT BE WRITTEN TO DEAD LETTER QUEUE DUE TO JAVA.LANG.NULLPOINTEREXCEPTION.

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • WebSphere MQ V7 Client connecting to an MQ V7 Server and sees
    the following stack trace error. This issue is caused by the
    customer's JVM not supporting CCSID 1140. From the trace we see
    the customer was running with a non-IBM JRE.
    
    The dead letter queue could not be written to because of
    exception '
     Message : java.lang.NullPointerException
     Class : class
    java.lang.NullPointerException
    com.ibm.msg.client.wmq.internal.WMQPoison
     Stack :
    com.ibm.mq.jmqi.internal.JmqiDC.
    writeMQField(JmqiDC.java:812)
     :
    com.ibm.mq.jmqi.internal.JmqiDC.
    writeMQField(JmqiDC.java:780)
     :
    com.ibm.mq.jmqi.MQDLH.writeToBuffer
    (MQDLH.java:440)
     : com.ibm.mq.jmqi.internal.
    AbstractMqiStructure.writeToBuffer(AbstractMqiStructure.java:87)
     :
    com.ibm.msg.client.wmq.internal.
    WMQPoison$PoisonMessage.chainInDLH(WMQPoison.java:1999)
     :
    com.ibm.msg.client.wmq.internal.
    WMQPoison$PoisonMessage.access$1400(WMQPoison.java:1725)
     :
    com.ibm.msg.client.wmq.internal.
    WMQPoison.deadletter(WMQPoison.java:784)
     :
    com.ibm.msg.client.wmq.internal.
    WMQPoison.handlePoisonMessage(WMQPoison.java:439)
     :
    com.ibm.msg.client.wmq.internal.
    WMQPoison.handlePoisonMessage(WMQPoison.java:325)
     :
    com.ibm.msg.client.wmq.internal.
    WMQPoison.handlePoisonMessage(WMQPoison.java:294)
     :
    com.ibm.msg.client.wmq.internal.
    WMQConsumerShadow.getMsg(WMQConsumerShadow.java:1499)
     :
    com.ibm.msg.client.wmq.internal.
    WMQSyncConsumerShadow.receiveInternal(WMQSyncConsumerShadow.java
    :227)
     :
    com.ibm.msg.client.wmq.internal.
    WMQConsumerShadow.receive(WMQConsumerShadow.java:1165)
     :
    com.ibm.msg.client.wmq.internal.
    WMQMessageConsumer.receive(WMQMessageConsumer.java:460)
     :
    com.ibm.msg.client.jms.internal.
    JmsMessageConsumerImpl.receiveInboundMessage(JmsMessageConsumerI
    mpl.
    java:786)
     :
    com.ibm.msg.client.jms.internal.
    JmsMessageConsumerImpl.receive(JmsMessageConsumerImpl.java:486)
     :
    com.ibm.mq.jms.MQMessageConsumer.
    receive(MQMessageConsumer.java:212)
    

Local fix

  • Ensure that messages are written to the queue using a coded
    character set identifier (CCSID) that can be accepted on the
    receiving application. Alternatively, configure the receiving
    application to request that the queue manager converts the
    message to a more suitable CCSID before delivery.
    

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    This issue affects users of the WebSphere MQ Classes for JMS
    V7.1 and V7.5 who are attempting to receive messages whose
    body is represented in a coded character set identifier
    (CCSID) which is not supported by the Java virtual machine
    (JVM).
    
    
    Platforms affected:
    MultiPlatform
    
    ****************************************************************
    PROBLEM SUMMARY:
    A WebSphere MQ Classes for JMS application attempted to
    receive a message with a message body which was encoded using
    a character set not supported by the JVM, this resulted in a
    exception being flowed back to the application. This also marked
    the message as poisonous.
    
    The WebSphere MQ Classes for JMS poison message handling code
    then attempted to append a Dead Letter Header to the message
    encoded in the same code page as the MQMD (MQ Message
    Descriptor) structure. The code page was again not supported
    by the JVM and this resulted in a NullPointerException being
    thrown. As a result of the NullPointerException, the message not
    written to the Dead Letter Queue.
    

Problem conclusion

  • The WebSphere MQ Classes for JMS have now been altered to append
    a Dead Letter Header to the message in code page 1208 (UTF-8) if
    the code page specified in the MQMD is not supported by the JVM.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v7.1       7.1.0.5
    v7.5       7.5.0.4
    
    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

    IC98520

  • Reported component name

    WMQ WINDOWS V7

  • Reported component ID

    5724H7220

  • Reported release

    710

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2013-12-30

  • Closed date

    2014-01-20

  • Last modified date

    2014-01-20

  • 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

  • R710 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":"710","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
20 January 2014