IBM Support

IT38772: Managed File Transfer protocol bridge agent abends due to a NullPointerException during a transfer to an SFTP server.

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

APAR status

  • Closed as program error.

Error description

  • An MQ Managed File Transfer protocol bridge agent (PBA) is
    configured to connect to a file server using the SFTP protocol.
    Intermittently, the agent shuts itself down unexpectedly and
    generates an ABEND file
    indicating that a NullPointerException has occurred within the
    method:
    
      com.ibm.wmqfte.jsch.Session.start_discard()
    
    An example of the ABEND file is shown below:
    
    ...
    Thread:    64 (CommandHandlerWorker-0)
    Class:     com.ibm.wmqfte.thread.FTEThread
    Method:    uncaughtException
    Probe:     ABEND_001
    Cause:     java.lang.NullPointerException
    java.lang.NullPointerException
      at
    com.ibm.wmqfte.jsch.Session.start_discard(Session.java:1212)
      at com.ibm.wmqfte.jsch.Session.read(Session.java:1076)
      at com.ibm.wmqfte.jsch.Session.connect(Session.java:356)
      at
    com.ibm.wmqfte.bridge.session.sftp.SFTPConnection.openSession(SF
    TPConnection.java:430)
      at
    com.ibm.wmqfte.bridge.session.sftp.SFTPConnection.connect(SFTPCo
    nnection.java:128)
      at
    com.ibm.wmqfte.bridge.session.sftp.SFTPSession.connect(SFTPSessi
    on.java:169)
      at
    com.ibm.wmqfte.bridge.session.sftp.SessionFactory.createSession(
    SessionFactory.java:98)
      at
    com.ibm.wmqfte.bridge.endpoint.BridgeEndPoint.createSession(Brid
    geEndPoint.java:92)
      at com.ibm.wmqfte.bridge.Bridge.createSession(Bridge.java:355)
      at
    com.ibm.wmqfte.bridge.utils.BridgeSessionContainer.getSession(Br
    igeSessionContainer.java:130)
      at
    com.ibm.wmqfte.bridge.session.BridgeSessionContainerManager.getS
    ession(BridgeSessionContainerManager.java:140)
      at
    com.ibm.wmqfte.io.bridge.BridgeFileImpl.getSession(BridgeFileImp
    l.java:769)
      at
    com.ibm.wmqfte.io.bridge.BridgeFileImpl.<init>(BridgeFileImpl.ja
    va:152)
      at
    com.ibm.wmqfte.io.bridge.BridgeFileFactoryHelperImpl.newFTEFile(
    BridgeFileFactoryHelperImpl.java:115)
      at
    com.ibm.wmqfte.io.FTEFileFactory.newFTEFile(FTEFileFactory.java:
    244)
      at
    com.ibm.wmqfte.cmdhandler.impl.FTETransferItemGenerator.generate
    TransferItemPairs(FTETransferItemGenerator.java:123)
      at
    com.ibm.wmqfte.cmdhandler.impl.FTECommandHandlerSAXParser$FTEIte
    mHandler.generateItemListPairs(FTECommandHandlerSAXParser.java:9
    12)
      at
    com.ibm.wmqfte.cmdhandler.impl.FTECommandHandlerSAXParser$FTEIte
    mHandler.endElement(FTECommandHandlerSAXParser.java:765)
      at
    com.ibm.wmqfte.cmdhandler.impl.FTECommandHandlerSAXParser$FTETra
    nsferSetHandler.endElement(FTECommandHandlerSAXParser.java:537)
      at
    com.ibm.wmqfte.cmdhandler.impl.FTECommandHandlerSAXParser$FTESAX
    Handler.endElement(FTECommandHandlerSAXParser.java:311)
      at
    org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
    Source)
      at
    org.apache.xerces.impl.xs.XMLSchemaValidator.endElement(Unknown
    Source)
      at
    org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(U
    nknown Source)
      at
    org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentCo
    ntentDispatcher.dispatch(Unknown Source)
      at
    org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocume
    nt(Unknown Source)
      at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
    Source)
      at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
    Source)
      at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
      at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
    Source)
      at
    org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown
     Source)
      at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
      at
    com.ibm.wmqfte.cmdhandler.impl.FTECommandHandlerSAXParser.parser
    XML(FTECommandHandlerSAXParser.java:1744)
      at
    com.ibm.wmqfte.cmdhandler.impl.MessageHandlerImpl.externalMessag
    eHandler(MessageHandlerImpl.java:209)
      at
    com.ibm.wmqfte.cmdhandler.impl.MessageHandlerImpl.processCommand
    (MessageHandlerImpl.java:167)
      at
    com.ibm.wmqfte.cmdhandler.impl.FTECommandHandlerWorkerThread.pro
    cessCommand(FTECommandHandlerWorkerThread.java:282)
      at
    com.ibm.wmqfte.cmdhandler.impl.FTECommandHandlerWorkerThread.run
    (FTECommandHandlerWorkerThread.java:173)
      at java.lang.Thread.run(Thread.java:820)
      at com.ibm.wmqfte.thread.FTEThread.run(FTEThread.java:70)
    

Local fix

  • Resolve why the SFTP server is returning a null key during the
    SSL handshake.
    The agent will get restarted by the MFT process controller and
    there is no manual intervention needed to bring it back to a
    running status.
    

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    This issue affects users of IBM MQ 9.2 Managed File Transfer,
    who have protocol bridge agents (PBAs) that connect to a file
    server using the SFTP protocol.
    
    
    Platforms affected:
    MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    MQ Managed File Transfer 9.2 protocol bridge agents (PBAs) use a
    fork of the third-party JSch library when communicating with
    file servers using the SFTP protocol. If the JSch code receives
    some invalid data from a file server while performing a managed
    transfer, then it will discard that data before throwing an
    internal exception. As a result of the internal exception, the
    managed transfer will be marked as "Failed".
    
    Now, if the JSch code received some invalid data during an SFTP
    key exchange while connecting to a file server, it incorrectly
    assumed that the cipher required to read that data had already
    been initialized. When it then tried to use the cipher, a
    NullPointerException would be generated within the internal
    method:
    
      com.ibm.wmqfte.jsch.Session.start_discard()
    
    This caused the agent to generate an ABEND file containing the
    following information:
    
    ...
    Method:     uncaughtException
    Probe:      ABEND_001
    Cause:      java.lang.NullPointerException
    java.lang.NullPointerException
    &#09;at
    com.ibm.wmqfte.jsch.Session.start_discard(Session.java:1212)
    &#09;at com.ibm.wmqfte.jsch.Session.read(Session.java:1076)
    &#09;at com.ibm.wmqfte.jsch.Session.connect(Session.java:356)
    ...
    
    and then shut itself down.
    

Problem conclusion

  • The fork of the JSch library used by MQ 9.2 Managed File
    Transfer has been updated so to check if the cipher needed to
    read any invalid data that has been received during an SFTP key
    exchange is initialized before trying to use it. This allows the
    managed transfer that is in progress when the invalid data is
    received to complete and be marked as "Failed", and prevents the
    agent from stopping unexpectedly.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v9.2 LTS   9.2.0.5
    v9.x CD    9.2.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

    IT38772

  • 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

    2021-10-22

  • Closed date

    2021-11-29

  • Last modified date

    2022-02-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

    MQ BASE V9.2

  • Fixed component ID

    5724H7281

Applicable component levels

[{"Line of Business":{"code":"LOB45","label":"Automation"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"920"}]

Document Information

Modified date:
05 February 2022