You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by kw...@apache.org on 2008/09/08 23:32:18 UTC
svn commit: r693282 - in /openjpa/trunk:
openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/
openjpa-kernel/src/main/java/org/apache/openjpa/kernel/
Author: kwsutter
Date: Mon Sep 8 14:32:17 2008
New Revision: 693282
URL: http://svn.apache.org/viewvc?rev=693282&view=rev
Log:
OPENJPA-715. Committing the testcase provided by Ekin Sokmen and the patch provided by Fay Wang. Committing the change for both the 1.2.x service stream and 1.3.0 snapshot (trunk).
Modified:
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/TableJDBCSeq.java
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/SingleFieldManager.java
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/StateManagerImpl.java
Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/TableJDBCSeq.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/TableJDBCSeq.java?rev=693282&r1=693281&r2=693282&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/TableJDBCSeq.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/TableJDBCSeq.java Mon Sep 8 14:32:17 2008
@@ -356,7 +356,7 @@
}
/**
- * Return the primary key value for the given class.
+ * Return the primary key value for the sequence table for the given class.
*/
protected Object getPrimaryKey(ClassMapping mapping) {
return Numbers.valueOf(0);
Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/SingleFieldManager.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/SingleFieldManager.java?rev=693282&r1=693281&r2=693282&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/SingleFieldManager.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/SingleFieldManager.java Mon Sep 8 14:32:17 2008
@@ -755,8 +755,12 @@
.setFailedObject(obj);
} else {
sm = _broker.getStateManager(obj);
- if (sm == null || !sm.isProvisional())
+ if (sm == null || !sm.isProvisional()) {
sm = _broker.persist(obj, null, true, call);
+ // ensure generated IDs get assigned properly
+ if (!logical)
+ ((StateManagerImpl)sm).assignObjectId(false, true);
+ }
}
if (sm != null) {
Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/StateManagerImpl.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/StateManagerImpl.java?rev=693282&r1=693281&r2=693282&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/StateManagerImpl.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/StateManagerImpl.java Mon Sep 8 14:32:17 2008
@@ -512,7 +512,7 @@
* Ask store manager to assign our oid, optionally flushing and
* optionally recaching on the new oid.
*/
- private boolean assignObjectId(boolean flush, boolean preFlushing) {
+ boolean assignObjectId(boolean flush, boolean preFlushing) {
if (_oid != null || isEmbedded() || !isPersistent())
return true;