IBM Support

PI56465: @TransactionScoped bean instances do not have their @PreDestroy-annotated destructors called.

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • @TransactionScoped beans have a lifetime defined as the
    length of the transaction. At the end of the transaction,
    bean instances within the scoped should have their
    destructors called. This issue manifests as methods
    annotated with @PreDestroy not being called when they ought
    to be.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of the Contexts and Dependency    *
    *                  Injection (CDI) 1.2 functionality in IBM    *
    *                  WebSphere Application Server Liberty        *
    ****************************************************************
    * PROBLEM DESCRIPTION: @TransactionScoped bean instances do    *
    *                      not have their @PreDestroy-annotated    *
    *                      destructors called.                     *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    @TransactionScoped bean instances live for the length of the
    transaction they are created within. At the end of the
    transaction, instances created within it should be destroyed by
    calling their @PreDestroy-annotated methods.  Between versions
    8.5.5.6 and 8.5.5.8, WebSphere Application Server Liberty does
    not call these destructors.
    

Problem conclusion

  • The code that tracks @TransactionScoped bean instances now has a
    callback to allow notification of when the transaction has
    ended. Upon receiving that notification, it will destroy bean
    instances appropriately.  Note that this can introduce a
    behaviour change for existing applications that already use
    @PreDestroy annotated methods in @TransactionScoped beans.
    
    The fix for this APAR is currently targeted for inclusion in fix
    pack 8.5.5.9.  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

    PI56465

  • Reported component name

    WAS LIBERTY COR

  • Reported component ID

    5725L2900

  • Reported release

    855

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2016-02-02

  • Closed date

    2016-02-03

  • Last modified date

    2016-02-03

  • 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

    WAS LIBERTY COR

  • Fixed component ID

    5725L2900

Applicable component levels

  • R855 PSY

       UP

[{"Business Unit":{"code":"BU053","label":"Cloud \u0026 Data Platform"},"Product":{"code":"SSD28V","label":"WebSphere Application Server Liberty Core"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"855","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
16 October 2021