You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by mp...@apache.org on 2007/01/09 03:00:16 UTC
svn commit: r494298 -
/incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/StateManagerImpl.java
Author: mprudhom
Date: Mon Jan 8 18:00:15 2007
New Revision: 494298
URL: http://svn.apache.org/viewvc?view=rev&rev=494298
Log:
Make sure we keep the entity's @Version field in sync with any changes to the internal version of the instance.
Modified:
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/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=494298&r1=494297&r2=494298
==============================================================================
--- 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 Jan 8 18:00:15 2007
@@ -575,19 +575,22 @@
}
public void setVersion(Object version) {
- _version = version;
_loadVersion = version;
+ assignVersionField(version);
+ }
+
+ public void setNextVersion(Object version) {
+ assignVersionField(version);
+ }
+ private void assignVersionField(Object version) {
+ _version = version;
FieldMetaData vfield = _meta.getVersionField();
if (vfield != null)
store(vfield.getIndex(), JavaTypes.convert(version,
vfield.getTypeCode()));
}
- public void setNextVersion(Object version) {
- _version = version;
- }
-
public PCState getPCState() {
return _state;
}
@@ -879,7 +882,7 @@
fireLifecycleEvent(LifecycleEvent.AFTER_STORE);
} else if (reason == BrokerImpl.FLUSH_ROLLBACK) {
// revert to last loaded version and original oid
- _version = _loadVersion;
+ assignVersionField(_loadVersion);
if (isNew() && (_flags & FLAG_OID_ASSIGNED) == 0)
_oid = null;
}
@@ -2492,7 +2495,7 @@
// forget version info and impl data so we re-read next time
setLoaded(false);
- _version = null;
+ assignVersionField(null);
_loadVersion = null;
if (_fieldImpl != null)
Arrays.fill(_fieldImpl, null);