Thanks David.

I tried LAZY and EAGER. Both caused the problem.

For #2, that seems promising. There's an EntityManager clear method,
but that would affect all threads using the entity manager.  Any
thoughts on how to do that detach?

On Nov 8, 8:20 pm, David Chandler <drfibona...@google.com> wrote:
> Hi dparish,
>
> There are three issues here:
>
> 1. GWT needs a fully populated object graph to send back to the
> client. Lazy fetching will not work across the client / server
> boundary, so you must ensure that your code fetches all relations
> eagerly (via an annotation or a separate call if needed).
>
> 2. JDO and JPA implementations use proxy classes for objects attached
> to a persistence manager. Before they can be sent back to the client,
> you must detach all objects from the PM.
>
> 3. Even then, GWT won't be able to serialize any types for which it
> doesn't know the source (like App Engine's Key class). The open source
> Gilead project and others like Objectify provide GWT wrappers for
> these.
>
> HTH,
> /dmc
>
>
>
>
>
>
>
>
>
> On Mon, Nov 8, 2010 at 8:17 PM, dparish <dpar...@gmail.com> wrote:
> > I have an entity with a member like this:
>
> > @Entity
> > public class Foo  implements Serializable{
>
> >   �...@onetomany(mappedBy="foo",targetEntity=InternalText.class,
> >               fetch=FetchType.EAGER)  // I tried Lazy too.
>
> >     private ArrayList<InternalText>internalTextEntries;
>
> > When I try to use Foo I get this error:
>
> > Throwable occurred:
> > com.google.gwt.user.client.rpc.SerializationException: Type
> > 'org.apache.openjpa.util.java$util$ArrayList$proxy' was not included
> > in the set of types which can be serialized by this
> > SerializationPolicy or its Class object could not be loaded. For
> > security purposes, this type will not be serialized.: instance =
> > [blah.blah.entities.internalt...@36ae36ae,
> > blah.bhla.entities.internalt...@3fca3fca,
> > blah.blah.retain.entities.internalt...@42474247,
> > blah.blah.entities.internalt...@48724872]
> >        at
> > com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.seriali 
> > ze(ServerSerializationStreamWriter.java:
> > 610)
> >        at
> > com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.write 
> > Object(AbstractSerializationStreamWriter.java:
> > 129)
> >        at 
> > com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter
> > $ValueWriter$8.write(ServerSerializationStreamWriter.java:152)
> >        at
> > com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.seriali 
> > zeValue(ServerSerializationStreamWriter.java:
> > 534)
> >        at
> > com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.seriali 
> > zeClass(ServerSerializationStreamWriter.java:
> > 700)
>
> > From what I can tell openjpa is creating a helper representation of
> > ArrayList that it uses to assist in monitoring and lazy loading the
> > child table.  I've tried eager and lazy fetching.
>
> > I tried this:
>
> >        ArrayList<InternalText> newText = new ArrayList<InternalText>();
> >        for (InternalText textItem: foo.getInternalTextEntries()) {
> >                newText.add(textItem);
> >        }
> >        foo.setInternalTextEntries(newText);
>
> > It got past my error, but then the next layer down had trouble (Date
> > in the InternalText class)
>
> > Type 'org.apache.openjpa.util.java$util$Date$proxy' was not included
> > in the set of types which can be serialized by this
> > SerializationPolicy
>
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "Google Web Toolkit" group.
> > To post to this group, send email to google-web-tool...@googlegroups.com.
> > To unsubscribe from this group, send email to 
> > google-web-toolkit+unsubscr...@googlegroups.com.
> > For more options, visit this group 
> > athttp://groups.google.com/group/google-web-toolkit?hl=en.
>
> --
> David Chandler
> Developer Programs Engineer, Google Web 
> Toolkithttp://googlewebtoolkit.blogspot.com/

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to google-web-tool...@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to