Author: aadamchik
Date: Wed Aug 16 11:32:36 2006
New Revision: 431978

URL: http://svn.apache.org/viewvc?rev=431978&view=rev
Log:
CAY-614 v. 2.0

Modified:
    
incubator/cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/cayenne/java/org/apache/cayenne/access/ToManyList.java
    
incubator/cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/tests/java/org/apache/cayenne/access/ToManyListTst.java

Modified: 
incubator/cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/cayenne/java/org/apache/cayenne/access/ToManyList.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/cayenne/java/org/apache/cayenne/access/ToManyList.java?rev=431978&r1=431977&r2=431978&view=diff
==============================================================================
--- 
incubator/cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/cayenne/java/org/apache/cayenne/access/ToManyList.java
 (original)
+++ 
incubator/cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/cayenne/java/org/apache/cayenne/access/ToManyList.java
 Wed Aug 16 11:32:36 2006
@@ -387,10 +387,26 @@
             removedFromUnresolved = new LinkedList();
         }
 
-        removedFromUnresolved.addLast(object);
+        // No point in adding a new or transient object -- these will never be 
fetched from the database.
+        boolean shouldAddToRemovedFromUnresolvedList = true;
+        if (object instanceof DataObject) {
+            DataObject dataObject = (DataObject) object;
+            if ( (dataObject.getPersistenceState() == 
PersistenceState.TRANSIENT)
+              || (dataObject.getPersistenceState() == PersistenceState.NEW) ) {
+                shouldAddToRemovedFromUnresolvedList = false;
+            }
+        }
+
+        if (shouldAddToRemovedFromUnresolvedList) {
+            removedFromUnresolved.addLast(object);
+        }
 
         // this is really meaningless, since we don't know
         // if an object was present in the list
         return true;
+    }
+    
+    public String toString() {
+        return getClass().getName() + "@" + System.identityHashCode(this);
     }
 }

Modified: 
incubator/cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/tests/java/org/apache/cayenne/access/ToManyListTst.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/tests/java/org/apache/cayenne/access/ToManyListTst.java?rev=431978&r1=431977&r2=431978&view=diff
==============================================================================
--- 
incubator/cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/tests/java/org/apache/cayenne/access/ToManyListTst.java
 (original)
+++ 
incubator/cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/tests/java/org/apache/cayenne/access/ToManyListTst.java
 Wed Aug 16 11:32:36 2006
@@ -90,7 +90,6 @@
         assertTrue("List must be unresolved when removing an object...", list
                 .isFault());
         assertFalse(list.addedToUnresolved.contains(p1));
-        assertTrue(list.removedFromUnresolved.contains(p1));
 
         // now resolve
         int size = list.size();


Reply via email to