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 2007/10/05 10:32:25 UTC
svn commit: r582121 - in
/cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test:
java/org/apache/cayenne/access/NestedDataContextWriteTest.java
resources/dml/access.NestedDataContextWriteTest.xml
Author: aadamchik
Date: Fri Oct 5 01:32:25 2007
New Revision: 582121
URL: http://svn.apache.org/viewvc?rev=582121&view=rev
Log:
CAY-698 "Null ObjectId" exception from DataContext.localObject()
(test case only - 3.0 is not affected by the bug itself as it uses a different merge algorithm)
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/java/org/apache/cayenne/access/NestedDataContextWriteTest.java
cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/resources/dml/access.NestedDataContextWriteTest.xml
Modified: cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/java/org/apache/cayenne/access/NestedDataContextWriteTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/java/org/apache/cayenne/access/NestedDataContextWriteTest.java?rev=582121&r1=582120&r2=582121&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/java/org/apache/cayenne/access/NestedDataContextWriteTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/java/org/apache/cayenne/access/NestedDataContextWriteTest.java Fri Oct 5 01:32:25 2007
@@ -44,6 +44,44 @@
return context;
}
+ /**
+ * A test case for CAY-698 bug.
+ */
+ public void testNullifyToOne() throws Exception {
+ deleteTestData();
+ createTestData("testNullifyToOne");
+
+ DataContext context = createDataContext();
+ DataContext childContext = context.createChildDataContext();
+ DataContext childContextPeer = context.createChildDataContext();
+
+ Painting childP1 = (Painting) DataObjectUtils.objectForPK(
+ childContext,
+ Painting.class,
+ 33001);
+
+ // trigger object creation in the peer nested DC
+ DataObjectUtils.objectForPK(childContextPeer, Painting.class, 33001);
+ childP1.setToArtist(null);
+
+ blockQueries();
+
+ try {
+ childContext.commitChangesToParent();
+ assertEquals(PersistenceState.COMMITTED, childP1.getPersistenceState());
+
+ Painting parentP1 = (Painting) context.getGraphManager().getNode(
+ childP1.getObjectId());
+
+ assertNotNull(parentP1);
+ assertEquals(PersistenceState.MODIFIED, parentP1.getPersistenceState());
+ assertNull(parentP1.getToArtist());
+ }
+ finally {
+ unblockQueries();
+ }
+ }
+
public void testCommitChangesToParent() throws Exception {
deleteTestData();
createTestData("testFlushChanges");
Modified: cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/resources/dml/access.NestedDataContextWriteTest.xml
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/resources/dml/access.NestedDataContextWriteTest.xml?rev=582121&r1=582120&r2=582121&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/resources/dml/access.NestedDataContextWriteTest.xml (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/resources/dml/access.NestedDataContextWriteTest.xml Fri Oct 5 01:32:25 2007
@@ -109,4 +109,13 @@
</constructor-arg>
</bean>
+ <bean id="testNullifyToOne" class="java.util.ArrayList">
+ <constructor-arg>
+ <list>
+ <ref bean="A1"/>
+ <ref bean="P1"/>
+ </list>
+ </constructor-arg>
+ </bean>
+
</beans>