com.google.gwt.user.client.rpc.SerializationException

When getting the following exception while fetching objects to the front end:

Exception while dispatching incoming RPC call
com.google.gwt.user.client.rpc.SerializationException: Type 'org.datanucleus.store.appengine.query.StreamingQueryResult' 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.


Even when I know the object is Serializable....

@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class RecipeStep implements Serializable
{
    public RecipeStep()
    {
    }



All I had to do is to REWRITE the returned LIST:

    public List<RecipeStep> fetch(Long recipeId)
    {
      ...
    steps = (List<RecipeStep>) pm.newQuery(query).execute();
...


List<RecipeStep> returnList = new ArrayList<RecipeStep>();
for(RecipeStep step: steps)
{
    returnList.add(step);
}
return returnList;
    }











3 comments:

  1. How did you discover this & do you have any idea why this generates this exception?

    ReplyDelete
  2. Thanks, that saved me tearing my hair out.
    Instead of the returnList.adds, just using returnList.addAll(steps);
    works fine as well.
    Cheers
    Keith Marsh

    ReplyDelete
  3. Thanks a lot but this problem is simply terrible!

    ReplyDelete