IBM Support

PM73099: NULL FIELD VALUES AFTER CALLING ENTITYMANAGER.REMOVE()

Subscribe

You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description

  • Fields of an entity instance are nulled after calling
    EntityManager.remove() on an instance.
    

Local fix

  • N/A
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of IBM WebSphere Application      *
    *                  Server V7.0 who make calls to               *
    *                  EntityManager.remove().                     *
    ****************************************************************
    * PROBLEM DESCRIPTION: Java Persistence API (JPA) entities     *
    *                      field values are null after calling     *
    *                      EntityManager.remove().                 *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    After a call is made to 'EntityManager.remove()', the fields
    of the removed entity are null.  For example, take an entity
    named User which contains a 'name' field.  Create an instance
    of User and set its name field, then persist the entity.
    After the persist, remove the entity.  In so doing, the 'name'
    field will be null rather than the value previously set.  The
    following source code illustrates this:
    //
    // EntityManager em is initialized before the following code
    //
    em.getTransaction().begin();
    User user = new User();
    user.setName("name1");
    em.persist(user);
    em.getTransaction().commit();
    //will print out name1:
    System.out.println(user.getName());
    em.getTransaction().begin();
    em.remove(user);
    em.getTransaction().commit();
    //will print out null:
    System.out.println(user.getName());
    According to the JPA 2.0 Spec, Section "3.2.3 Removal" states:
    "After an entity has been removed, its state (except for
    generated state) will be that of the entity at the point at
    which the remove operation was called."
    

Problem conclusion

  • With this fix, code has been added to OpenJPA to ensure that a
    JPA entities fields retain their state after a call to
    EntityManager.remove().
    
    The fix for this APAR is currently targeted for
    inclusion in Service Level (Fix Pack) 7.0.0.29 of WebSphere
    Application Server version 7.0.0.
    
    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

    PM73099

  • Reported component name

    WEBS APP SERV N

  • Reported component ID

    5724H8800

  • Reported release

    700

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-09-17

  • Closed date

    2013-01-08

  • Last modified date

    2013-01-08

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

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

    PM73781

Fix information

  • Fixed component name

    WEBS APP SERV N

  • Fixed component ID

    5724H8800

Applicable component levels

  • R700 PSY

       UP



Document information

More support for: WebSphere Application Server
General

Software version: 7.0

Reference #: PM73099

Modified date: 08 January 2013