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
-~----------~----~----~----~------~----~------~--~---

Reply via email to