IBM Support

PM15027: INVOKING AN XSLT, XPATH OR XQUERY EXECUTABLE THE FIRST TIME IN A MULTI-THREADED PROGRAM MAY RESULT IN A DEADLOCK

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • If a multi-threaded program creates XExecutable objects for one
    or more XSLT stylesheets, XQuery expressions or XPath
    expressions, and two or more threads attempt to invoke any of
    the executable methods of the XExecutable objects, a deadlock
    condition may result.  If this condition occurs, no call to an
    execute method will complete.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of the IBM WebSphere Application  *
    *                  Server v7.0 Feature Pack for XML 1.0.       *
    ****************************************************************
    * PROBLEM DESCRIPTION: If an application prepares one or more  *
    *                      XExecutable objects for XSLT            *
    *                      stylesheets, XQuery expressions or      *
    *                      XPath expressions, and then the         *
    *                      application attempts to invoke an       *
    *                      execute method of one or more of those  *
    *                      XExecutable objects on more than one    *
    *                      thread, a deadlock might occur on the   *
    *                      first invocation of an execute          *
    *                      method that occurs in the               *
    *                      application.  All subsequent attempts   *
    *                      to call execute methods will also be    *
    *                      stopped by the deadlock.                *
    *                                                              *
    *                      The same symptoms might occur on the    *
    *                      first invocation of the                 *
    *                      XItemFactory.item(Source) method if     *
    *                      more than one thread in an application  *
    *                      attempts to invoke that method.         *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    The IBM WebSphere Application Server Feature Pack for
    XML supports input from StreamSource, DOMSource, SAXSource or
    StAXSource objects.  It has several different "data adapters"
    that each supports one or more of these forms of input.
    
    When a Source object is first supplied on the execute method
    of an XExecutable object or on the item(Source) method of an
    XItemFactory object, the Feature Pack for XML initializes a
    registry of information about the data adapters and will
    create instances of factory classes for each data adapter to
    process the Source objects supplied.
    
    The Feature Pack for XML contains synchronization code to
    ensure only one thread at a time would attempt to create
    instances of the data adapter factory classes or initialize the
    registry of information about data adapters, and
    synchronization to ensure that only one thread at a time
    attempts to retrieve or update information about XML schemas
    that have been registered by the application.
    
    The deadlock occurs if one thread acquires the lock on the
    registry of information about data adapters (in order to create
    an instance of a data adapter factory class) and then tries to
    acquire a lock on the XML schemas that have been registered,
    while a second thread acquires the lock on the XML schemas
    that have been registered and then tries to acquire the lock
    on the registry of information about data adapters to record
    other information in the registry.
    

Problem conclusion

  • The problem was resolved by making the synchronization on the
    registry of information about data adapters more specific.
    Rather than synchronizing on one object, each specific piece
    of information to which access must be synchronized uses a
    different object for synchronization.  This allows
    asynchronous access to unrelated pieces of information in the
    registry to proceed without any risk of a deadlock situation.
    
    The fix for this APAR is currently targeted for inclusion in
    fix pack 1.0.0.7. Please refer to the Recommended Updates
    page for delivery information:
    http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980
    

Temporary fix

Comments

APAR Information

  • APAR number

    PM15027

  • Reported component name

    XML FEATUREPACK

  • Reported component ID

    5724J0856

  • Reported release

    700

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2010-05-21

  • Closed date

    2010-06-01

  • Last modified date

    2010-06-01

  • 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

    XML FEATUREPACK

  • Fixed component ID

    5724J0856

Applicable component levels

  • R700 PSY

       UP

[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SUPPORT","label":"IBM Worldwide Support"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"1.0","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
09 February 2022