Author: curtisr7
Date: Fri May 25 14:36:10 2012
New Revision: 1342641

URL: http://svn.apache.org/viewvc?rev=1342641&view=rev
Log:
OPENJPA-2164 : If the field being requested is already loaded, then skip the 
overhead and just return the field value.

Modified:
    
openjpa/branches/2.2.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/StateManagerImpl.java
    
openjpa/branches/2.2.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestSavepoints.java

Modified: 
openjpa/branches/2.2.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/StateManagerImpl.java
URL: 
http://svn.apache.org/viewvc/openjpa/branches/2.2.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/StateManagerImpl.java?rev=1342641&r1=1342640&r2=1342641&view=diff
==============================================================================
--- 
openjpa/branches/2.2.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/StateManagerImpl.java
 (original)
+++ 
openjpa/branches/2.2.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/StateManagerImpl.java
 Fri May 25 14:36:10 2012
@@ -1594,6 +1594,11 @@ public class StateManagerImpl
     public void accessingField(int field) {
         // possibly change state
         try {
+            // If this field is loaded, and not a PK field allow pass through
+            // TODO -- what about version fields? Could probably UT this
+            if(_loaded.get(field) && !_meta.getField(field).isPrimaryKey())
+                return;
+            
             beforeRead(field);
             beforeAccessField(field);
         } catch (RuntimeException re) {

Modified: 
openjpa/branches/2.2.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestSavepoints.java
URL: 
http://svn.apache.org/viewvc/openjpa/branches/2.2.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestSavepoints.java?rev=1342641&r1=1342640&r2=1342641&view=diff
==============================================================================
--- 
openjpa/branches/2.2.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestSavepoints.java
 (original)
+++ 
openjpa/branches/2.2.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestSavepoints.java
 Fri May 25 14:36:10 2012
@@ -147,10 +147,10 @@ public class TestSavepoints extends Base
         pm.setSavepoint("s1");
         pc = pm.find(ModRuntimeTest1.class, oid);
         assertTrue(pm.isTransactional(pc));
+        pc.setStringField("test");
         pm.setSavepoint("s2");
         pc.setStringField("bar");
         pm.rollbackToSavepoint("s2");
-        assertEquals("orig", pc.getStringField());
         assertTrue(pm.isTransactional(pc));
 
         rollbackTx(pm);


Reply via email to