ArrayList throwing exception on retrieval from google datastore (with gwt, java)

Posted by sumeet on Stack Overflow See other posts from Stack Overflow or by sumeet
Published on 2010-04-22T02:39:07Z Indexed on 2010/04/22 2:43 UTC
Read the original article Hit count: 566

I'm using Google Web Toolkit with java and google datastore as database. The entity class has arraylist and on trying to retrieve the data from data base I'm getting the exception:

Type 'org.datanucleus.sco.backed.ArrayList' 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.

I'm using JPA.

Entity code: package com.ver2.DY.client;

import java.io.Serializable; import java.util.ArrayList;

import javax.jdo.annotations.IdGeneratorStrategy; import javax.jdo.annotations.PersistenceCapable; import javax.jdo.annotations.Persistent; import javax.jdo.annotations.PrimaryKey;

import com.google.gwt.user.client.rpc.IsSerializable;

@PersistenceCapable public class ChatInfo implements Serializable, IsSerializable{ @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Long topicId;

@Persistent private String chatTopic;

@Persistent private ArrayList messages = new ArrayList();

@Persistent private boolean isFirstPost;

public ChatInfo() {

}

public Long getTopicId() {
return topicId; } public void setTopicId(Long topicId) { this.topicId = topicId; } public String getChatTopic() { return chatTopic; } public void setChatTopic(String chatTopic) { this.chatTopic = chatTopic; } public ArrayList getMessages() { return messages; } public void addMessage(String newMsg) { messages.add(newMsg); }

public boolean isFirstPost() { return isFirstPost; } public void setFirstPost(boolean isFirstPost) { this.isFirstPost = isFirstPost; }

}

Method in db class: @Transactional public ChatInfo[] getAllChat() { PersistenceManager pm = PMF.get().getPersistenceManager(); List chats = null; ChatInfo[] infos = null; String query = "select from " + ChatInfo.class.getName(); try{ chats = (List) pm.newQuery(query).execute();

infos = new ChatInfo[chats.size()]; for(int i=0;i

}

It is a bit strange because earlier I was able to insert and retrieve the data but it now throwing an exception. On searching the web I could find that I need to convert the Arraylist from some DataNucleus type to java util but not sure how to do that.

© Stack Overflow or respective owner

Related posts about google-datastore

Related posts about googlewebtoolkit