mirror of https://github.com/apache/openjpa.git
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. git-svn-id: https://svn.apache.org/repos/asf/incubator/openjpa/trunk@509411 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
8974a09908
commit
09e7aab777
|
@ -46,6 +46,9 @@ class SavepointFieldManager
|
|||
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 @@ class SavepointFieldManager
|
|||
// 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 ();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -90,6 +96,14 @@ class SavepointFieldManager
|
|||
return _sm;
|
||||
}
|
||||
|
||||
public Object getVersion() {
|
||||
return _version;
|
||||
}
|
||||
|
||||
public Object getLoadVersion() {
|
||||
return _loadVersion;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the persistence capable copy holding the savepoint field values.
|
||||
*/
|
||||
|
|
|
@ -579,6 +579,10 @@ public class StateManagerImpl
|
|||
assignVersionField(version);
|
||||
}
|
||||
|
||||
Object getLoadVersion() {
|
||||
return _loadVersion;
|
||||
}
|
||||
|
||||
public void setNextVersion(Object version) {
|
||||
assignVersionField(version);
|
||||
}
|
||||
|
@ -953,6 +957,8 @@ public class StateManagerImpl
|
|||
_loaded = loaded;
|
||||
_dirty = savepoint.getDirty();
|
||||
_flush = savepoint.getFlushed();
|
||||
_version = savepoint.getVersion();
|
||||
_loadVersion = savepoint.getLoadVersion();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue