IBM Support

IT13265: NULLPOINTEREXCEPTION THROWN WITHIN MQ CLASSES FOR JAVA/JMS WHEN TRACE IS ENABLED WITHOUT WRITE ACCESS TO FILESYSTEM

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • A attempt is made to start a v8.0 MQ Managed File Transfer agent
    while using the "-trace" option.
    The command fails, the agent is not started and an FDC is
    produced showing that a java.lang.NullPointerException has been
    thrown with the following stack trace:
      java.lang.NullPointerException
    at java.util.logging.FileHandler.<init>
    at
    com.ibm.msg.client.commonservices.j2se.trace.DefaultTracer$4.run
    at java.security.AccessController.doPrivileged
    at
    com.ibm.msg.client.commonservices.j2se.trace.DefaultTracer.initi
    alize
    at com.ibm.msg.client.commonservices.trace.Trace.setOn
    at com.ibm.wmqfte.ras.impl.WMQTraceHandler.publish
    at java.util.logging.Logger.log
    at com.ibm.wmqfte.ras.impl.EventLogImpl.log
    at com.ibm.wmqfte.ras.impl.EventLogImpl.internalInfo
    at com.ibm.wmqfte.ras.EventLog.info
    at com.ibm.wmqfte.ras.impl.RASImpl.recordLevelChange
    at com.ibm.wmqfte.ras.impl.RASImpl.internalSetLevel
    at com.ibm.wmqfte.ras.RAS.setLevel
    at com.ibm.wmqfte.api.AbstractCommand.setRasLevel
    at com.ibm.wmqfte.api.StartAgent.main
    at sun.reflect.NativeMethodAccessorImpl.invoke0
    at sun.reflect.NativeMethodAccessorImpl.invoke
    at sun.reflect.DelegatingMethodAccessorImpl.invoke
    at java.lang.reflect.Method.invoke
    at com.ibm.wmqfte.agent.bootstrap.impl.BootstrapMain.run
    at com.ibm.wmqfte.agent.bootstrap.impl.BootstrapMain.main
    

Local fix

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    Users of IBM MQ classes for Java/JMS, and IBM MQ Managed File
    Transfer who are running with trace enabled but do not have
    permission to write to the trace output location on the
    filesystem.
    
    
    Platforms affected:
    MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    When starting a program which uses the MQ Classes for Java or MQ
    Classes for JMS,  a:
    
      java.lang.NullPointerException
    
      is thrown from the java.util.logging.FileHandler constructor
    when the following conditions are met :-
    
    &#09;1. The program is run with trace enabled
    &#09;
    &#09;2. The program does not have a specific trace file location
    specified, so the default is used
    &#09;
    &#09;3. The program is run in a directory to which it does not
    have write access
    &#09;
    While the problem was first noted when using the IBM MQ Managed
    File Transfer, it is specific to the IBM MQ classes for
    Java/JMS, which are in turn used by the IBM MQ Managed File
    Transfer product.
    
    
    When trace is enabled, trace initialisation checks are made to
    ensure that the trace file can be created, which set a String to
    the path name of the file if the file could be created, and to
    null if it could not.
    
    If the String is non-null, it can be passed to the FileHandler
    constructor successfully.  If it was null, when passed to the
    FileHandler constructor, the java.lang.NullPointerException was
    thrown, with the following stack:
    
    java.lang.NullPointerException
    at java.util.logging.FileHandler.<init>(FileHandler.java:366)
    at
    com.ibm.msg.client.commonservices.j2se.trace.DefaultTracer$4.run
    (DefaultTracer.java:782)
    at
    java.security.AccessController.doPrivileged(AccessController.jav
    a:396)
    at
    com.ibm.msg.client.commonservices.j2se.trace.DefaultTracer.initi
    alize(DefaultTracer.java:766)
    at
    com.ibm.msg.client.commonservices.trace.Trace.setOn(Trace.java:5
    90)
    

Problem conclusion

  • A null test has been reinstated, such that if the program does
    not have access to write the trace file, all the trace output is
    instead written to the process' standard error stream, avoiding
    the java.lang.NullPointerException.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v8.0       8.0.0.5
    
    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

    IT13265

  • 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-01-20

  • Closed date

    2016-03-31

  • Last modified date

    2016-05-04

  • 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":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
04 May 2016