What steps will reproduce the problem?
1. Having a Java entity class with a property of type java.util.Set (with
java.util.List it works fine)
Example:
public class Cart extends HibernateProxy implements Serializable {
private Set items = new HashSet(0);
}
2. In your flex application, call a service method which take this entity
as a parameter.
Example:
srv.createCart(new Cart());
What is the expected output? What do you see instead?
The Cart Object (and particularly the items property) is not well
deserialized and dpHibernate throws this exception:
java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
net.digitalprimates.persistence.translators.hibernate.HibernateDeserializer.read
Bean(HibernateDeserializer.java:214)
...
What version of the product are you using? On what operating system?
Spring 2.5, Hibernate 3.2, Ubuntu operating system
Please provide any additional information below.
I think the problem comes from the "readCollection" method of the
"HibernateDeserializer" class.
During the deserialization process, the property of type Set is processed
by the "readCollection" method (because the Set type is also of type
Collection).
In this method the property is transformed into an ArrayList which then
cause an error of "IllegalArgumentException" when the method try to cast
the translated property of type ArrayList in a Map type.
I resolved the problem by modifying the "readCollection" method like that:
for (Object o : (Collection) obj)
{
o = translate(o, type);
}
return obj;
Like this, the type of the property (of type Collection) is not changed and
the error don't occurred !
Hope this could help.
Bye.
Original issue reported on code.google.com by arnoux.f...@gmail.com on 2 Dec 2008 at 12:23
Original issue reported on code.google.com by
arnoux.f...@gmail.com
on 2 Dec 2008 at 12:23