Bob went off and got married, so he won't be back until next week (I think).
On Thu, Sep 17, 2009 at 8:21 AM, futzi <[email protected]> wrote: > > 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 -~----------~----~----~----~------~----~------~--~---
