PDA

View Full Version : server-side serialization of BaseModelData



basinilya
6 Feb 2012, 5:33 AM
I need a deep copy of List<BaseModelData> . This method is supposed to create it:

@SuppressWarnings("unchecked")
public static <T> T cloneSerializable(T o) {
try {
ByteArrayOutputStream bout = new ByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(bout);

out.writeObject(o);
out.close();

ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray());
ObjectInputStream in = new ObjectInputStream(bin);
Object copy = in.readObject();

in.close();
return (T)copy;
} catch (IOException e) {
throw new RuntimeException("Unexpected error", e);
} catch (ClassNotFoundException e) {
throw new RuntimeException("Unexpected error", e);
}
}



But when I try to access the model, I get this:

java.lang.NullPointerException
at com.extjs.gxt.ui.client.data.RpcMap.get(RpcMap.java:132)
at com.extjs.gxt.ui.client.data.BaseModelData.get(BaseModelData.java:65)


Question 1: If you have RpcMap_CustomFieldSerializer, do you still need to declare RpcMap.map as transient?

Question 2: How to modify my method so it correctly clones RpcMap ?