IBM Support

PI90507: INSTANCES OF ACTION LISTENER IN A FACELET ARE NOT BEING REMOVED UNTIL APP SHUTDOWN

Fixes are available

9.0.0.7: WebSphere Application Server traditional V9.0 Fix Pack 7
17.0.0.4: WebSphere Application Server Liberty 17.0.0.4
18.0.0.1: WebSphere Application Server Liberty 18.0.0.1
18.0.0.2: WebSphere Application Server Liberty 18.0.0.2
9.0.0.8: WebSphere Application Server traditional V9.0 Fix Pack 8
9.0.0.9: WebSphere Application Server traditional V9.0 Fix Pack 9
18.0.0.3: WebSphere Application Server Liberty 18.0.0.3
9.0.0.10: WebSphere Application Server traditional V9.0 Fix Pack 10
18.0.0.4: WebSphere Application Server Liberty 18.0.0.4
19.0.0.1: WebSphere Application Server Liberty 19.0.0.1
19.0.0.2: WebSphere Application Server Liberty 19.0.0.2
19.0.0.3: WebSphere Application Server Liberty 19.0.0.3
9.0.0.11: WebSphere Application Server traditional V9.0 Fix Pack 11
19.0.0.4: WebSphere Application Server Liberty 19.0.0.4
19.0.0.5: WebSphere Application Server Liberty 19.0.0.5
9.0.5.0: WebSphere Application Server traditional Version 9.0.5 Refresh Pack
19.0.0.6: WebSphere Application Server Liberty 19.0.0.6
19.0.0.7: WebSphere Application Server Liberty 19.0.0.7
19.0.0.8: WebSphere Application Server Liberty 19.0.0.8
9.0.5.1: WebSphere Application Server traditional Version 9.0.5 Fix Pack 1
19.0.0.9: WebSphere Application Server Liberty 19.0.0.9
19.0.0.10: WebSphere Application Server Liberty 19.0.0.10
19.0.0.11: WebSphere Application Server Liberty 19.0.0.11
9.0.5.2: WebSphere Application Server traditional Version 9.0.5 Fix Pack 2
19.0.0.12: WebSphere Application Server Liberty 19.0.0.12
20.0.0.1: WebSphere Application Server Liberty 20.0.0.1
20.0.0.2: WebSphere Application Server Liberty 20.0.0.2
9.0.5.3: WebSphere Application Server traditional Version 9.0.5 Fix Pack 3
20.0.0.3: WebSphere Application Server Liberty 20.0.0.3
20.0.0.4: WebSphere Application Server Liberty 20.0.0.4
20.0.0.5: WebSphere Application Server Liberty 20.0.0.5
20.0.0.6: WebSphere Application Server Liberty 20.0.0.6
9.0.5.4: WebSphere Application Server traditional Version 9.0.5 Fix Pack 4
20.0.0.7: WebSphere Application Server Liberty 20.0.0.7
20.0.0.8: WebSphere Application Server Liberty 20.0.0.8
9.0.5.5: WebSphere Application Server traditional Version 9.0.5 Fix Pack 5
20.0.0.9: WebSphere Application Server Liberty 20.0.0.9
20.0.0.10: WebSphere Application Server Liberty 20.0.0.10
20.0.0.11: WebSphere Application Server Liberty 20.0.0.11
20.0.0.12: WebSphere Application Server Liberty 20.0.0.12
9.0.5.6: WebSphere Application Server traditional Version 9.0.5 Fix Pack 6

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Applications which are callingusing Action Listener is not
    being removed until
    application shutdown. Since instances are being held in a
    list of injected JSF artifacts, this list will grow unless
    you shutdown the app.
    
    Heapdump shows leaking objects are created by code using
    org/apache/myfaces/cdi/dependent/BeanEntry and these are
    holding a reference to ActionListener
    Neither GC or
    Session invalidation clear these objects from memory.
    
    Example of leaking object tree
    
    12,433,696 (27.93%) [96] 13
    com/ibm/ws/webcontainer31/session/impl/HttpSessionContext31I
    mpl
    0xe2d00600
    |- 12,432,456 (27.92%) [32] 3
    com/ibm/ws/session/SessionInvalidatorWithThreadPool
    0xe2d05bf8
    |- 12,432,136 (27.92%) [16] 1
    com/ibm/ws/session/SessionInvalidatorWithThreadPool$Invalida
    tion
    Task
    0xe2d12048
    |- 12,432,120 (27.92%) [72] 7
    com/ibm/ws/session/store/memory/MemoryStore 0xe2d11ea0
    |- 12,427,624 (27.91%) [328] 55
    com/ibm/ws/webcontainer31/osgi/webapp/WebApp31 0xe1b36f80
    |- 12,285,424 (27.59%) [32] 5
    com/ibm/ws/adaptable/module/internal/AdaptableContainerImpl
    0xe1b36298
    |- 111,872 (0.25%) [32] 2
    java/util/Collections$SynchronizedMap 0xe1b37a60
    |- 111,840 (0.25%) [40] 1 java/util/HashMap
    0xe1b38588
    |- 111,800 (0.25%) [512] 46 array of
    java/util/HashMap$Node 0xfe743430
    |- 100,152 (0.22%) [24] 2
    java/util/HashMap$Node
    0xe2d05e50
    |- 4,424 (0.01%) [24] 2
    java/util/HashMap$Node
    0xfe751410
    |- 2,024 (0%) [24] 2 java/util/HashMap$Node
    0xe2d05fa0
    |- 824 (0%) [24] 2 java/util/HashMap$Node
    0xe2d05ef8
    |- 464 (0%) [24] 3 java/util/HashMap$Node
    0xe2d05ee0
    |- 288 (0%) [24] 2 java/util/HashMap$Node
    0xe2d05f70
    |- 264 (0%) [24] 2 java/util/HashMap$Node
    0xe2de9208
    |- 264 (0%) [24] 2 java/util/HashMap$Node
    0xe2d05e80
    |- 224 (0%) [24] 2 java/util/HashMap$Node
    0xfe751470
    |- 224 (0%) [24] 2 java/util/HashMap$Node
    0xe03200a0
    |- 224 (0%) [24] 2 java/util/HashMap$Node
    0xfe751458
    |- 200 (0%) [24] 2 java/util/HashMap$Node
    0xfe751440
    |- 192 (0%) [24] 2 java/util/HashMap$Node
    0xe2d05fe8
    |- 168 (0%) [16] 2
    java/util/concurrent/CopyOnWriteArrayList 0xe2d121e0
    |- 104 (0%) [16] 5 array of
    java/lang/Object
    0xfe7498c8
    |- 24 (0%) [16] 1
    org/apache/myfaces/cdi/dependent/BeanEntry 0xfe7577f0
    |- 8 (0%) [8] 0
    sampleactionlistener/TestListener 0xfe7c4080
    

Local fix

  • For customers application that raised this issue the following
    work around was possible. We have found a work around for this
    issue which should prevent the
    ActionListener from leaking every time the commandButton is
    executed.
    The work around to this issue would be to add the "binding"
    attribute to
    the f:actionListener element. When a binding is specified, only
    one
    instance will be created and added to the list of injected beans
    in the
    application map. As a result, since no new instances are created
    for
    each commandButton execution, then memory leak is prevented.
    
    The following link shows how to use the binding in the
    f:actionListener
    element:
    http://javabeat.net/how-to-implement-actionlistener-factionliste
    ner-in-j
    sf/
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  IBM WebSphere Application Server            *
    *                  Traditional Profile version 9.0 and Liberty *
    *                  Profile users of JavaServer Faces (JSF)     *
    *                  MyFaces 2.2                                 *
    ****************************************************************
    * PROBLEM DESCRIPTION: Instances of Action Listeners           *
    *                      registered in a Facelet are not being   *
    *                      removed from the injectable objects     *
    *                      list until app shutdown                 *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    When an Action Listener instance is created and registered via a
    Facelet, that instance is stored in a list that keep tracks of
    JSF injectable objects.  This list will grow, as instances of
    the Action Listener registered via a Facelet are not removed
    until the application shuts down.
    

Problem conclusion

  • To prevent the list from growing due to Action Listeners being
    added to it that are registered via a Facelet the JSF MyFaces
    2.2 code was updated to not call PreDestroy when an Action
    Listeners is registered via a Facelet.
    To enable this fix, set the following context parameter to
    true:
    com.ibm.ws.jsf.DisableFaceletActionListenerPreDestroy (true /
    false-default)
    
    The fix for this APAR is currently targeted for inclusion in fix
    pack 9.0.0.7 for WebSphere Application Server Traditional
    Profile and 17.0.0.4 for WebSphere Application Server Liberty
    Profile.  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

    PI90507

  • Reported component name

    LIBERTY PROFILE

  • Reported component ID

    5724J0814

  • Reported release

    850

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2017-11-21

  • Closed date

    2017-12-04

  • Last modified date

    2017-12-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

    LIBERTY PROFILE

  • Fixed component ID

    5724J0814

Applicable component levels

  • R850 PSY

       UP

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

Document Information

Modified date:
18 October 2021