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();
}
/**