Hazelcast as Hibernate 2nd level cache error: Problem when serializing type 1 due to null pointer

278 views
Skip to first unread message

andreas....@gmail.com

unread,
Aug 20, 2013, 9:15:40 AM8/20/13
to haze...@googlegroups.com
Hi,

Any ideas to why I get these errors when clustering JPA/Hibernate (3.6.9) entities with Hazelcast (2.5) as the 2nd level cache provider?

The system contains quite a number of entities so it's hard to pinpoint any particular faulty entity, and the stacktrace does not give me any details that points at anything specific in my code really... 

All help appreciated!

---

10:09:28.903 [hz.hazelcast-instance.cached.thread-5] ERROR com.hazelcast.impl.ListenerManager - Caught error while calling event listener; cause: Problem when serializing type 1
com.hazelcast.nio.HazelcastSerializationException: Problem when serializing type 1
at com.hazelcast.nio.AbstractSerializer.toObject(AbstractSerializer.java:128) ~[hazelcast-2.5.jar:2.5]
at com.hazelcast.nio.AbstractSerializer.toObject(AbstractSerializer.java:156) ~[hazelcast-2.5.jar:2.5]
at com.hazelcast.nio.Serializer.readObject(Serializer.java:71) ~[hazelcast-2.5.jar:2.5]
at com.hazelcast.impl.ThreadContext.toObject(ThreadContext.java:135) ~[hazelcast-2.5.jar:2.5]
at com.hazelcast.nio.IOUtil.toObject(IOUtil.java:163) ~[hazelcast-2.5.jar:2.5]
at com.hazelcast.impl.DataAwareEntryEvent.getKey(DataAwareEntryEvent.java:58) ~[hazelcast-2.5.jar:2.5]
at com.hazelcast.jmx.MapMBean$1.entryAdded(MapMBean.java:62) ~[hazelcast-2.5.jar:2.5]
at com.hazelcast.impl.ListenerManager.callListener(ListenerManager.java:392) ~[hazelcast-2.5.jar:2.5]
at com.hazelcast.impl.ListenerManager.callListeners(ListenerManager.java:334) ~[hazelcast-2.5.jar:2.5]
at com.hazelcast.impl.BaseManager$2.run(BaseManager.java:1391) ~[hazelcast-2.5.jar:2.5]
at com.hazelcast.impl.executor.ParallelExecutorService$ParallelExecutorImpl$ExecutionSegment.run(ParallelExecutorService.java:212) ~[hazelcast-2.5.jar:2.5]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_25]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) ~[na:1.7.0_25]
at java.lang.Thread.run(Thread.java:724) ~[na:1.7.0_25]
at com.hazelcast.impl.ExecutorThreadFactory$1.run(ExecutorThreadFactory.java:38) ~[hazelcast-2.5.jar:2.5]
Caused by: java.lang.NullPointerException: null
at java.util.concurrent.ConcurrentHashMap.hash(ConcurrentHashMap.java:333) ~[na:1.7.0_25]
at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:988) ~[na:1.7.0_25]
at org.hibernate.impl.SessionFactoryObjectFactory.getNamedInstance(SessionFactoryObjectFactory.java:159) ~[hibernate-core-3.6.9.Final.jar:3.6.9.Final]
at org.hibernate.impl.SessionFactoryImpl.readResolve(SessionFactoryImpl.java:753) ~[hibernate-core-3.6.9.Final.jar:3.6.9.Final]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_25]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_25]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_25]
at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_25]
at java.io.ObjectStreamClass.invokeReadResolve(ObjectStreamClass.java:1104) ~[na:1.7.0_25]
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1805) ~[na:1.7.0_25]
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348) ~[na:1.7.0_25]
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1989) ~[na:1.7.0_25]
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1913) ~[na:1.7.0_25]
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1796) ~[na:1.7.0_25]
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348) ~[na:1.7.0_25]
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1989) ~[na:1.7.0_25]
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1913) ~[na:1.7.0_25]
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1796) ~[na:1.7.0_25]
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348) ~[na:1.7.0_25]
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1704) ~[na:1.7.0_25]
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1342) ~[na:1.7.0_25]
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1989) ~[na:1.7.0_25]
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1913) ~[na:1.7.0_25]
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1796) ~[na:1.7.0_25]
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348) ~[na:1.7.0_25]
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1989) ~[na:1.7.0_25]
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1913) ~[na:1.7.0_25]
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1796) ~[na:1.7.0_25]
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348) ~[na:1.7.0_25]
at java.io.ObjectInputStream.readUnshared(ObjectInputStream.java:460) ~[na:1.7.0_25]
at com.hazelcast.nio.DefaultSerializer$ObjectSerializer.readNormal(DefaultSerializer.java:410) ~[hazelcast-2.5.jar:2.5]
at com.hazelcast.nio.DefaultSerializer$ObjectSerializer.read(DefaultSerializer.java:380) ~[hazelcast-2.5.jar:2.5]
at com.hazelcast.nio.DefaultSerializer.read(DefaultSerializer.java:138) ~[hazelcast-2.5.jar:2.5]
at com.hazelcast.nio.CustomSerializerAdapter.read(CustomSerializerAdapter.java:32) ~[hazelcast-2.5.jar:2.5]
at com.hazelcast.nio.AbstractSerializer.toObject(AbstractSerializer.java:121) ~[hazelcast-2.5.jar:2.5]
... 14 common frames omitted

andreas....@gmail.com

unread,
Aug 21, 2013, 7:05:11 AM8/21/13
to haze...@googlegroups.com, andreas....@gmail.com
Some follow up for anyone who ends up with this exception in the future...

...the problem occured for entities that had @EmbeddedId for their id's and @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE), any change to such entity failed to be serialized by Hazelcast to the other nodes. So the workaround here simply became to skip caching those entities...

// Andreas
Reply all
Reply to author
Forward
0 new messages