IBM Support

PK28643: FINDBYPRIMARYKEY CAN RETURN WRONG OBJECT WHEN CACHE PK IS NOT PROPERLY UPDATED BY WSAS

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • User first does a create of an entity bean (EB) with a primary
    key (PK) that has an Integer int value
    of <x>.  On the resultant bean, they then do a
    "bean.getPrimaryKey" to
    get its PK.  They then assign this PKs Integer to a new Integer
    of int
    value <y> and then use this PK to find an EB and update the EB.
    This is a perfectly fine operation. From an EJB Container point
    of view,
    when the user updates this PK, it also updates the PK in the
    cache.  In
    most cases, we copy a PK before putting it in our cache to avoid
    this
    problem.  However, in this case, teh copy was skipped and thus
    were essentially using the same copy as the user. This will be
    corrected.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All WebSphere Application Server v5.1.x      *
    *                 users who call EJBLocalObject.getPrimaryKey  *
    *                 and make changes to the resultant primary    *
    *                 key.                                         *
    ****************************************************************
    * PROBLEM DESCRIPTION: In this APAR, the user is doing a       *
    *                      EJBLocalObject.getPrimaryKey().  They   *
    *                      are then modifying the resultant        *
    *                      primary key (PK) and using the PK for   *
    *                      further operations.  When the user      *
    *                      updates the PK, they are essentially    *
    *                      editing the 'live' PK that is stored    *
    *                      in EJB Container cache, thus messing    *
    *                      up internal cache which may causes an   *
    *                      incorrect object to be returned on      *
    *                      further requests.  However, what the    *
    *                      user is doing is perfectly fine and     *
    *                      acceptable.  To account for this, the   *
    *                      code in this fix will make a copy of    *
    *                      the PK object and return the copy of    *
    *                      the PK object to the user, not the      *
    *                      'live' object.  This issue is only      *
    *                      hit in the case where a user makes a    *
    *                      change to the primary key               *
    *                      returned from                           *
    *                      EJBLocalObject.getPrimaryKey, in the    *
    *                      remote case (i.e.                       *
    *                      EJBObject.getPrimaryKey), we            *
    *                      had already accounted for this issue.   *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    The user is doing a EJBLocalObject.getPrimaryKey().  They
    are then modifying the resultant primary key (PK) and using
    the PK for further operations (a perfectly fine operation
    by the way).  Updating the PK causes adverse effects in
    internal WAS code.  The solution in this fix will allow for a
    copy of the PK to be returned to the user when they call
    EJBLocalObject.getPrimaryKey().
    

Problem conclusion

  • With this fix, the user can change the primary key returned
    by EJBLocalObject.getPrimaryKey() without adverse effects.
    
    The fix for this APAR is currently targeted for inclusion in
    fixpack 5.1.1.12, 6.0.2.13 and 6.1.0.2. Please refer to the
    Recommended Updates page for delivery information:http://www-1.
    ibm.com/support/docview.wss?rs=180&context=SSEQTP&uid
    =swg27004980
    

Temporary fix

Comments

APAR Information

  • APAR number

    PK28643

  • Reported component name

    WEBSPH APP SERV

  • Reported component ID

    5724J0800

  • Reported release

    60W

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2006-07-24

  • Closed date

    2006-07-24

  • Last modified date

    2006-07-24

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

    PK26539

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

Fix information

  • Fixed component name

    WEBSPH APP SERV

  • Fixed component ID

    5724J0800

Applicable component levels

  • R60A PSY

       UP

  • R60H PSY

       UP

  • R60I PSY

       UP

  • R60P PSY

       UP

  • R60S PSY

       UP

  • R60W PSY

       UP

  • R60Z PSY

       UP

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"6.0","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
19 October 2021