You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by dk...@apache.org on 2011/10/06 09:59:03 UTC

svn commit: r1179529 - in /cayenne/main/trunk: docs/doc/src/main/resources/RELEASE-NOTES.txt framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/ObjectContextQueryAction.java

Author: dkazimirchyk
Date: Thu Oct  6 07:59:02 2011
New Revision: 1179529

URL: http://svn.apache.org/viewvc?rev=1179529&view=rev
Log:
CAY-1628 ClassCastException when using java.util.Set or java.util.Map as collection type for to-many relationship

converting Set and Map to List when intercepting child's relationship query

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/util/ObjectContextQueryAction.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=1179529&r1=1179528&r2=1179529&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 Thu Oct  6 07:59:02 2011
@@ -19,6 +19,7 @@ CAY-1618 Create database adapters instan
 Bug Fixes Since 3.1M3:
 
 CAY-1627 CayenneModeler: collection types for to-many relationships are not saved
+CAY-1628 ClassCastException when using java.util.Set or java.util.Map as collection type for to-many relationship
 
 ----------------------------------
 Release: 3.1 M3

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/ObjectContextQueryAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/ObjectContextQueryAction.java?rev=1179529&r1=1179528&r2=1179529&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/ObjectContextQueryAction.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/ObjectContextQueryAction.java Thu Oct  6 07:59:02 2011
@@ -22,6 +22,8 @@ package org.apache.cayenne.util;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 import org.apache.cayenne.BaseContext;
 import org.apache.cayenne.ObjectContext;
@@ -219,10 +221,18 @@ public abstract class ObjectContextQuery
                             if (related == null) {
                                 result = new ArrayList(1);
                             }
-                            // to-many
+                            // to-many List
                             else if (related instanceof List) {
                                 result = (List) related;
                             }
+                            // to-many Set
+                            else if (related instanceof Set) {
+                                result = new ArrayList((Set) related);
+                            }
+                            // to-many Map
+                            else if (related instanceof Map) {
+                                result = new ArrayList(((Map) related).values());
+                            }
                             // non-null to-one
                             else {
                                 result = new ArrayList(1);