IBM Support

PK67567: JPA ENTITIES ARE FLUSHED WHEN THEY ARE SERIALIZED

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • JPA entries are flushed when they are serialized.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: IBM WebSphere Application Server Feature     *
    *                 Pack for EJB 3.0 users of Java Persistence   *
    *                 API (JPA) Entities                           *
    ****************************************************************
    * PROBLEM DESCRIPTION: Entities are flushed prior to being     *
    *                      serialized or detached via the          *
    *                      OpenJPAEntityManager.detach API. If     *
    *                      either of these occur in a              *
    *                      PostPersist callback method a           *
    *                      reentrant flush may occur.              *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    The application may define a set of callback methods which
    correspond to the lifecycle of the Entity. If the application
    has configured a callback method which serializes the entity
    (directly or indirectly) the following InvalidStateException
    may occur.
    An example exception follows :
    <openjpa-1.0.1-r420667:592145 fatal user error>
    org.apache.openjpa.util.InvalidStateException: Detected
    reentrant flush. Make sure your flush-time instance callback
    methods or event listeners do not invoke any operations that
    require the in-progress flush to complete.
        at org.apache.openjpa.kernel.BrokerImpl.
    flushSafe(BrokerImpl.java:1848)
        at org.apache.openjpa.kernel.BrokerImpl.
    flush(BrokerImpl.java:1623)
        at org.apache.openjpa.kernel.DetachManager.
    flushDirty(DetachManager.java: 223)
        at org.apache.openjpa.kernel.BrokerImpl.
    flush(BrokerImpl.java:1977)      . . .
    

Problem conclusion

  • For some applications flushing the entities before they are
    serialized or are detached may be desirable. In order to
    support both sets of applications we have added a
    configuration option which can disable or enable the flush. By
    default the flushes will occur. In order to disable the flush
    this APAR should be installed and the following property
    should be added to persistence.xml :
    <property name="openjpa.Compatibility"
    value="default(flushBeforeDetach=false)" />
    
    The fix for this APAR is currently targeted for inclusion
    in fix pack 6.1.0.21.
    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

    PK67567

  • Reported component name

    WEBS APP SERV N

  • Reported component ID

    5724H8800

  • Reported release

    610

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2008-06-12

  • Closed date

    2008-06-27

  • Last modified date

    2008-06-27

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Modules/Macros

  • X
    

Fix information

  • Fixed component name

    WAS EJB3 FEATUR

  • Fixed component ID

    5724J0851

Applicable component levels

  • R610 PSY

       UP

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"6.1","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
10 February 2022