Hi Bob,
during my RPCServlet - tests I found another issuer with the
serialization and dezerialization of certain objects. When trying to
send the attached object to the client, the rpc-mechanism leads to
some kind of endless loop and ends with the following exception.
[java] java.lang.reflect.InvocationTargetException
[java] at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown
Source)
[java] at sun.reflect.DelegatingMethodAccessorImpl.invoke
(Unknown Source)
[java] at java.lang.reflect.Method.invoke(Unknown Source)
[java] at
com.google.gwt.rpc.server.CommandServerSerializationStreamWriter.serializeWithCustomSerializer
(CommandServerSerializationStreamWriter.java:213)
[java] at
com.google.gwt.rpc.server.CommandServerSerializationStreamWriter.makeObject
(CommandServerSerializationStreamWriter.java:146)
[java] at
com.google.gwt.rpc.server.CommandServerSerializationStreamWriter.makeValue
(CommandServerSerializationStreamWriter.java:92)
[java] at
com.google.gwt.rpc.server.CommandServerSerializationStreamWriter.makeObject
(CommandServerSerializationStreamWriter.java:179)
[java] at
com.google.gwt.rpc.server.CommandServerSerializationStreamWriter.makeValue
(CommandServerSerializationStreamWriter.java:92)
[java] at
com.google.gwt.rpc.server.CommandServerSerializationStreamWriter.makeObject
(CommandServerSerializationStreamWriter.java:179)
[java] at
com.google.gwt.rpc.server.CommandServerSerializationStreamWriter.makeValue
(CommandServerSerializationStreamWriter.java:92)
[java] at
com.google.gwt.rpc.client.impl.CommandSerializationStreamWriterBase.writeObject
(CommandSerializationStreamWriterBase.java:64)
[java] at
com.google.gwt.user.client.rpc.core.java.util.Collection_CustomFieldSerializerBase.serialize
(Collection_CustomFieldSerializerBase.java:44)
[java] at
com.google.gwt.user.client.rpc.core.java.util.ArrayList_CustomFieldSerializer.serialize
(ArrayList_CustomFieldSerializer.java:36)
[java] at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown
Source)
[java] at sun.reflect.DelegatingMethodAccessorImpl.invoke
(Unknown Source)
[java] at java.lang.reflect.Method.invoke(Unknown Source)
[java] at
com.google.gwt.rpc.server.CommandServerSerializationStreamWriter.serializeWithCustomSerializer
(CommandServerSerializationStreamWriter.java:213)
[java] at
com.google.gwt.rpc.server.CommandServerSerializationStreamWriter.makeObject
(CommandServerSerializationStreamWriter.java:146)
[java] at
com.google.gwt.rpc.server.CommandServerSerializationStreamWriter.makeValue
(CommandServerSerializationStreamWriter.java:92)
[java] at
com.google.gwt.rpc.server.CommandServerSerializationStreamWriter.makeObject
(CommandServerSerializationStreamWriter.java:179)
[java] at
com.google.gwt.rpc.server.CommandServerSerializationStreamWriter.makeValue
(CommandServerSerializationStreamWriter.java:92)
[java] at
com.google.gwt.rpc.server.CommandServerSerializationStreamWriter.makeObject
(CommandServerSerializationStreamWriter.java:179)
[java] at
com.google.gwt.rpc.server.CommandServerSerializationStreamWriter.makeValue
(CommandServerSerializationStreamWriter.java:92)
[java] at
com.google.gwt.rpc.client.impl.CommandSerializationStreamWriterBase.writeObject
(CommandSerializationStreamWriterBase.java:64)
[java] at
com.google.gwt.user.client.rpc.core.java.util.Collection_CustomFieldSerializerBase.serialize
(Collection_CustomFieldSerializerBase.java:44)
[java] at
com.google.gwt.user.client.rpc.core.java.util.ArrayList_CustomFieldSerializer.serialize
(ArrayList_CustomFieldSerializer.java:36)
[java] at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown
Source)
[java] at sun.reflect.DelegatingMethodAccessorImpl.invoke
(Unknown Source)
[java] at java.lang.reflect.Method.invoke(Unknown Source)
[java] at
com.google.gwt.rpc.server.CommandServerSerializationStreamWriter.serializeWithCustomSerializer
(CommandServerSerializationStreamWriter.java:213)
[java] at
com.google.gwt.rpc.server.CommandServerSerializationStreamWriter.makeObject
(CommandServerSerializationStreamWriter.java:146)
[java] at
com.google.gwt.rpc.server.CommandServerSerializationStreamWriter.makeValue
(CommandServerSerializationStreamWriter.java:92)
[java] at
com.google.gwt.rpc.server.CommandServerSerializationStreamWriter.makeObject
(CommandServerSerializationStreamWriter.java:179)
[java] at
com.google.gwt.rpc.server.CommandServerSerializationStreamWriter.makeValue
(CommandServerSerializationStreamWriter.java:92)
[java] at
com.google.gwt.rpc.server.CommandServerSerializationStreamWriter.makeObject
(CommandServerSerializationStreamWriter.java:179)
[java] at
com.google.gwt.rpc.server.CommandServerSerializationStreamWriter.makeValue
(CommandServerSerializationStreamWriter.java:92)
[java] at
com.google.gwt.rpc.client.impl.CommandSerializationStreamWriterBase.writeObject
(CommandSerializationStreamWriterBase.java:64)
[java] at
com.google.gwt.user.client.rpc.core.java.util.Collection_CustomFieldSerializerBase.serialize
(Collection_CustomFieldSerializerBase.java:44)
[java] at
com.google.gwt.user.client.rpc.core.java.util.ArrayList_CustomFieldSerializer.serialize
(ArrayList_CustomFieldSerializer.java:36)
[java] at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown
Source)
[java] at sun.reflect.DelegatingMethodAccessorImpl.invoke
(Unknown Source)
[java] at java.lang.reflect.Method.invoke(Unknown Source)
.....
I tried to transport some kind of a tree object:
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
public class SerializableObject implements Serializable {
private static final long serialVersionUID = 289043616337394794L;
protected List<SerializableObject> children;
protected SerializableObject parent;
public SerializableObject() {
children = new ArrayList<SerializableObject>();
}
public void setParent(SerializableObject parent) {
this.parent = parent;
}
public void add(SerializableObject child) {
child.setParent(this);
children.add(child);
}
}
The server method looks quite simple:
public SerializableObject getSerializableObject() {
SerializableObject object = new SerializableObject();
object.add(new SerializableObject());
return object;
}
Can you help me with that?
Regards,
Mark
--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---