You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2011/12/06 05:42:25 UTC
svn commit: r1210777 - in /cayenne/main/trunk: docs/doc/src/main/resources/
framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/
framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/
framework/cayen...
Author: aadamchik
Date: Tue Dec 6 04:42:25 2011
New Revision: 1210777
URL: http://svn.apache.org/viewvc?rev=1210777&view=rev
Log:
CAY-1630 [PATCH] On OptimisticLockException, add method to return the object that caused the failure
providing my own implementation instead of the attached patch
Modified:
cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/OptimisticLockException.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/OptimisticLockingTest.java
Modified: cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt?rev=1210777&r1=1210776&r2=1210777&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt Tue Dec 6 04:42:25 2011
@@ -18,6 +18,7 @@ CAY-1607 [PATCH] add pluralize method to
CAY-1608 Implement constructor injection support for DefaultAdhocObjectFactory
CAY-1618 Create database adapters instances with proper injection
CAY-1629 [PATCH] Can't add custom Hessian serializers to the client
+CAY-1630 [PATCH] On OptimisticLockException, add method to return the object that caused the failure
CAY-1637 [PATCH] DataContextFactory is cumbersome to customize
CAY-1638 [PATCH] Can't disable validation for CayenneContext
CAY-1639 cayenne-lifecycle: don't call String representation of ObjectId a UUID
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/OptimisticLockException.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/OptimisticLockException.java?rev=1210777&r1=1210776&r2=1210777&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/OptimisticLockException.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/OptimisticLockException.java Tue Dec 6 04:42:25 2011
@@ -26,6 +26,7 @@ import java.util.Map;
import org.apache.cayenne.Cayenne;
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.ObjectContext;
+import org.apache.cayenne.ObjectId;
import org.apache.cayenne.exp.Expression;
import org.apache.cayenne.exp.ExpressionFactory;
import org.apache.cayenne.map.DbAttribute;
@@ -39,14 +40,16 @@ import org.apache.cayenne.query.SelectQu
*/
public class OptimisticLockException extends CayenneRuntimeException {
+ protected ObjectId failedObjectId;
protected String querySQL;
protected DbEntity rootEntity;
protected Map qualifierSnapshot;
- public OptimisticLockException(DbEntity rootEntity, String querySQL,
+ public OptimisticLockException(ObjectId id, DbEntity rootEntity, String querySQL,
Map qualifierSnapshot) {
super("Optimistic Lock Failure");
+ this.failedObjectId = id;
this.rootEntity = rootEntity;
this.querySQL = querySQL;
this.qualifierSnapshot = (qualifierSnapshot != null)
@@ -114,4 +117,13 @@ public class OptimisticLockException ext
return buffer.toString();
}
+
+ /**
+ * Returns the object that caused the OptimisticLockException.
+ *
+ * @since 3.1
+ */
+ public ObjectId getFailedObjectId() {
+ return failedObjectId;
+ }
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java?rev=1210777&r1=1210776&r2=1210777&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java Tue Dec 6 04:42:25 2011
@@ -216,6 +216,7 @@ public class BatchAction extends BaseSQL
}
throw new OptimisticLockException(
+ query.getObjectId(),
query.getDbEntity(),
queryStr,
snapshot);
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/OptimisticLockingTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/OptimisticLockingTest.java?rev=1210777&r1=1210776&r2=1210777&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/OptimisticLockingTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/OptimisticLockingTest.java Tue Dec 6 04:42:25 2011
@@ -384,6 +384,7 @@ public class OptimisticLockingTest exten
}
catch (OptimisticLockException ex) {
// optimistic lock failure expected...
+ assertEquals(object.getObjectId(), ex.getFailedObjectId());
}
}