You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by ss...@apache.org on 2007/02/20 03:00:51 UTC

svn commit: r509411 - in /incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel: SavepointFieldManager.java StateManagerImpl.java

Author: ssegu
Date: Mon Feb 19 18:00:50 2007
New Revision: 509411

URL: http://svn.apache.org/viewvc?view=rev&rev=509411
Log:
Capture the version fields into the memento when setting the savepoint and restore the version information into the StateManagerImpl as a part of the rollbackToSavepoint call.
Fix addresses OPENJPA-154.

Modified:
    incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/SavepointFieldManager.java
    incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/StateManagerImpl.java

Modified: incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/SavepointFieldManager.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/SavepointFieldManager.java?view=diff&rev=509411&r1=509410&r2=509411
==============================================================================
--- incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/SavepointFieldManager.java (original)
+++ incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/SavepointFieldManager.java Mon Feb 19 18:00:50 2007
@@ -46,6 +46,9 @@
     private final PCState _state;
     private PersistenceCapable _copy;
 
+    private final Object _version;
+    private final Object _loadVersion;
+
     // used to track field value during store/fetch cycle
     private Object _field = null;
     private int[] _copyField = null;
@@ -81,6 +84,9 @@
         // we need to proxy the fields so that we can track future changes
         // from this savepoint forward for PNew instances' mutable fields
         _sm.proxyFields(false, false);
+
+        _version = _sm.getVersion ();
+        _loadVersion = _sm.getLoadVersion ();
     }
 
     /**
@@ -88,6 +94,14 @@
      */
     public StateManagerImpl getStateManager() {
         return _sm;
+    }
+
+    public Object getVersion() {
+        return _version;
+    }
+
+    public Object getLoadVersion() {
+        return _loadVersion;
     }
 
     /**

Modified: incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/StateManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/StateManagerImpl.java?view=diff&rev=509411&r1=509410&r2=509411
==============================================================================
--- incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/StateManagerImpl.java (original)
+++ incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/StateManagerImpl.java Mon Feb 19 18:00:50 2007
@@ -579,6 +579,10 @@
         assignVersionField(version);
     }
 
+    Object getLoadVersion() {
+        return _loadVersion;
+    }
+
     public void setNextVersion(Object version) {
         assignVersionField(version);
     }
@@ -953,6 +957,8 @@
         _loaded = loaded;
         _dirty = savepoint.getDirty();
         _flush = savepoint.getFlushed();
+        _version = savepoint.getVersion();
+        _loadVersion = savepoint.getLoadVersion();
     }
 
     /**