Hi,I am new Kryo and exploring to use in my project. but when i try one POC, i am getting a strange error. i am putting all my classes.
1) public class CopyOnWriteMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Comparator<Entry<K,V>> {
private Map<? extends K,? extends V> backingMap = null;
private ArrayList<SimpleEntry<K,V>> store = null
............... some getters/setters
}
2) public class View implements Serializable{
private CopyOnWriteMap<String,String> _attributes = new CopyOnWriteMap<String,String>();
private String _viewID;
............... some getters/setters
}
3) public class Page implements Serializable {
private CopyOnWriteMap<String,String> _attributes = new CopyOnWriteMap<String,String>();
private CopyOnWriteMap<String, View> _views = new CopyOnWriteMap<String, View>();
............... some getters/setters
public View getMutableView(final String viewID) {
View view = _views.get(viewID);
if (!_views.containsLocalKey(viewID)) {
if (view == null) {
view = new View();
view.setViewID(viewID);
} else {
view = view.createChild();
}
_views.put(viewID, view);
}
return view;
}
}
4) public class KryoSerializerUtil {
public static void main(String[] args) throws Exception {
Page page = new Page();
page.getMutableView("ramki");
Kryo kryo = new Kryo();
kryo.register(CopyOnWriteMap.class);
kryo.register(View.class);
kryo.register(Page.class);
Output output = new Output(new FileOutputStream("file.bin"));
kryo.writeClassAndObject(output, page);
}
}
so when i try to run above code i am getting following error
Exception in thread "main" com.esotericsoftware.kryo.KryoException: java.lang.ClassCastException: com.apn.transformer.View cannot be cast to java.lang.String
Serialization trace:
at com.esotericsoftware.kryo.serializers.FieldSerializer$ObjectField.write(FieldSerializer.java:495)
at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:213)
at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:571)
at com.apn.transformer.kryo.KryoSerializerUtil.main(KryoSerializerUtil.java:97)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: java.lang.ClassCastException: com.apn.transformer.View cannot be cast to java.lang.String
at com.esotericsoftware.kryo.serializers.DefaultSerializers$StringSerializer.write(DefaultSerializers.java:146)
at com.esotericsoftware.kryo.Kryo.writeObjectOrNull(Kryo.java:552)
at com.esotericsoftware.kryo.serializers.MapSerializer.write(MapSerializer.java:83)
at com.esotericsoftware.kryo.serializers.MapSerializer.write(MapSerializer.java:17)
at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:504)
at com.esotericsoftware.kryo.serializers.FieldSerializer$ObjectField.write(FieldSerializer.java:474)
could someone help me to find out the problem?
Thanks,
Ramki
--
You received this message because you are subscribed to the "kryo-users" group.
http://groups.google.com/group/kryo-users