Fixes are available
7.0.0.19: WebSphere Application Server V7.0 Fix Pack 19
7.0.0.21: WebSphere Application Server V7.0 Fix Pack 21
7.0.0.23: WebSphere Application Server V7.0 Fix Pack 23
7.0.0.25: WebSphere Application Server V7.0 Fix Pack 25
7.0.0.27: WebSphere Application Server V7.0 Fix Pack 27
7.0.0.29: WebSphere Application Server V7.0 Fix Pack 29
7.0.0.31: WebSphere Application Server V7.0 Fix Pack 31
7.0.0.27: Java SDK 1.6 SR13 FP2 Cumulative Fix for WebSphere Application Server
7.0.0.33: WebSphere Application Server V7.0 Fix Pack 33
7.0.0.35: WebSphere Application Server V7.0 Fix Pack 35
7.0.0.37: WebSphere Application Server V7.0 Fix Pack 37
7.0.0.39: WebSphere Application Server V7.0 Fix Pack 39
7.0.0.41: WebSphere Application Server V7.0 Fix Pack 41
7.0.0.43: WebSphere Application Server V7.0 Fix Pack 43
7.0.0.45: WebSphere Application Server V7.0 Fix Pack 45
7.0.0.19: Java SDK 1.6 SR9 FP2 Cumulative Fix for WebSphere Application Server
7.0.0.21: Java SDK 1.6 SR9 FP2 Cumulative Fix for WebSphere
7.0.0.23: Java SDK 1.6 SR10 FP1 Cumulative Fix for WebSphere
7.0.0.25: Java SDK 1.6 SR11 Cumulative Fix for WebSphere Application Server
7.0.0.27: Java SDK 1.6 SR12 Cumulative Fix for WebSphere Application Server
7.0.0.29: Java SDK 1.6 SR13 FP2 Cumulative Fix for WebSphere Application Server
7.0.0.45: Java SDK 1.6 SR16 FP60 Cumulative Fix for WebSphere Application Server
7.0.0.31: Java SDK 1.6 SR15 Cumulative Fix for WebSphere Application Server
7.0.0.35: Java SDK 1.6 SR16 FP1 Cumulative Fix for WebSphere Application Server
7.0.0.37: Java SDK 1.6 SR16 FP3 Cumulative Fix for WebSphere Application Server
7.0.0.39: Java SDK 1.6 SR16 FP7 Cumulative Fix for WebSphere Application Server
7.0.0.41: Java SDK 1.6 SR16 FP20 Cumulative Fix for WebSphere Application Server
7.0.0.43: Java SDK 1.6 SR16 FP41 Cumulative Fix for WebSphere Application Server
APAR status
Closed as program error.
Error description
Single Table Inheritance Strategy causes JPA entity identity issues.
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: All users of IBM WebSphere Application * * Server V7.0.0 who make use of a Java * * Persistence API (JPA) single table * * inheritance strategy. * * * **************************************************************** * PROBLEM DESCRIPTION: Single Table Inheritance Strategy * * causes JPA entity identity issues. * **************************************************************** * RECOMMENDATION: * **************************************************************** Take the following three entities and notice the inheritance/hierarchy: @Entity @Inheritance public class ParentRecord { @Id private long id; //Changing EAGER and LAZY effects the tests @OneToOne(fetch=FetchType.LAZY) ParentRecord parent; .......... } @Entity public class HeaderRecord extends ParentRecord { //Changing EAGER and LAZY effects the tests @OneToOne(cascade=CascadeType.ALL, fetch=FetchType.EAGER) ControlRecord controlRecord; ..... } @Entity public class ControlRecord extends ParentRecord{ //intentionally empty } Notice that ParentRecord uses @Inheritance. By default, @Inheritance uses an InheritanceType.SINGLE_TABLE as the default strategy (which plays a role in this issue). With these entities, take this test: //Find an existing HeaderRecord; assume one exists with id 10 HeaderRecord hrSaved = em.find(HeaderRecord.class, 10); //Now, get a HeaderRecord from the relationship //with ControlRecord HeaderRecord hrFromControl = (HeaderRecord) hrSaved.getControlRecord().getParent(); //Compare the two header objects; they are expected to //be identical as they have same primary key. assertTrue(hrSaved == hrFromControl); With this test, the 'assertTrue' method will fail as the two HeaderRecord objects are not identical. This is due to a bug in OpenJPA code when an inheritance strategy of InheritanceType.SINGLE_TABLE is used. As the test shows, the same HeaderRecord is retrieved in two ways: by a find method, and by a getter method to traverse the relationship. These methods should return the same identical entity/object. However, there is a bug in the OpenJPA code such that the same entity is not found by OpenJPA code, as such another copy of the entity is retrieved from the database. Finally, as the comments in the entities above suggest, the FetchType used plays a role in the outcome of the test. Using a FetchType of EAGER on both entities will allow the test to pass.
Problem conclusion
With this fix, code has been added to ensure that the same entity identity is used and found regardless of the means by which the entity is retrieved (that is, finder or getter). The fix for this APAR is currently targeted for inclusion in Service Level (Fix Pack) 7.0.0.19 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
PM34867
Reported component name
WEBSPHERE APP S
Reported component ID
5724J0800
Reported release
700
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2011-03-15
Closed date
2011-03-31
Last modified date
2011-03-31
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
WEBSPHERE APP S
Fixed component ID
5724J0800
Applicable component levels
R700 PSY
UP
Document Information
Modified date:
27 October 2021