TheTransitClock / transitime

TheTransitClock real-time transit information system
GNU General Public License v3.0
78 stars 30 forks source link

Exception from Kyro serializer moving entry to lower cache. #209

Open scrudden opened 3 years ago

scrudden commented 3 years ago
Error overflowing 'StopArrivalDepartureCacheKey [stopid=13000082, date=Mon Oct 19 00:00:00 PDT 2020]' into lower caching tier org.ehcache.impl.internal.store.offheap.OffHeapStore@73f2634e
org.ehcache.core.spi.store.StoreAccessException: com.esotericsoftware.kryo.KryoException: java.lang.ClassCastException: org.transitclock.core.dataCache.StopEvents cannot be cast to java.lang.String
Serialization trace:
blockId (org.transitclock.ipc.data.IpcArrivalDeparture)
events (org.transitclock.core.dataCache.StopEvents)
    at org.ehcache.core.exceptions.StorePassThroughException.handleRuntimeException(StorePassThroughException.java:70)
    at org.ehcache.impl.internal.store.offheap.AbstractOffHeapStore.computeWithRetry(AbstractOffHeapStore.java:1109)
    at org.ehcache.impl.internal.store.offheap.AbstractOffHeapStore.installMapping(AbstractOffHeapStore.java:1078)
    at org.ehcache.impl.internal.store.tiering.CompoundCachingTier$1.onInvalidation(CompoundCachingTier.java:67)
    at org.ehcache.impl.internal.store.heap.OnHeapStore$22.onInvalidation(OnHeapStore.java:975)
    at org.ehcache.impl.internal.store.heap.OnHeapStore.notifyInvalidation(OnHeapStore.java:965)
    at org.ehcache.impl.internal.store.heap.OnHeapStore.access$1100(OnHeapStore.java:114)
    at org.ehcache.impl.internal.store.heap.OnHeapStore$19.apply(OnHeapStore.java:854)
    at org.ehcache.impl.internal.store.heap.OnHeapStore$19.apply(OnHeapStore.java:850)
    at org.ehcache.impl.internal.concurrent.ConcurrentHashMap.computeIfPresent(ConcurrentHashMap.java:1794)
    at org.ehcache.impl.internal.store.heap.SimpleBackend.computeIfPresent(SimpleBackend.java:124)
    at org.ehcache.impl.internal.store.heap.OnHeapStore.invalidate(OnHeapStore.java:850)
    at org.ehcache.impl.internal.store.heap.OnHeapStore.invalidateAll(OnHeapStore.java:905)
    at org.ehcache.impl.internal.store.heap.OnHeapStore$Provider.releaseCachingTier(OnHeapStore.java:1816)
    at org.ehcache.impl.internal.store.heap.OnHeapStore$Provider.releaseHigherCachingTier(OnHeapStore.java:1851)
    at org.ehcache.impl.internal.store.tiering.CompoundCachingTier$Provider.releaseCachingTier(CompoundCachingTier.java:250)
    at org.ehcache.impl.internal.store.tiering.TieredStore$Provider.releaseStore(TieredStore.java:460)
    at org.ehcache.core.EhcacheManager$8.close(EhcacheManager.java:504)
    at org.ehcache.core.StatusTransitioner.runCloseHooks(StatusTransitioner.java:158)
    at org.ehcache.core.StatusTransitioner.access$200(StatusTransitioner.java:33)
    at org.ehcache.core.StatusTransitioner$Transition.succeeded(StatusTransitioner.java:198)
    at org.ehcache.core.Ehcache.close(Ehcache.java:575)
    at org.ehcache.core.EhcacheManager.removeCache(EhcacheManager.java:199)
    at org.ehcache.core.EhcacheManager.close(EhcacheManager.java:607)
    at org.transitclock.applications.Core$1.run(Core.java:528)
    at java.lang.Thread.run(Thread.java:748)
Caused by: com.esotericsoftware.kryo.KryoException: java.lang.ClassCastException: org.transitclock.core.dataCache.StopEvents cannot be cast to java.lang.String
Serialization trace:
blockId (org.transitclock.ipc.data.IpcArrivalDeparture)
events (org.transitclock.core.dataCache.StopEvents)
    at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:101)
    at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:505)
    at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:651)
    at com.esotericsoftware.kryo.serializers.CollectionSerializer.write(CollectionSerializer.java:100)
    at com.esotericsoftware.kryo.serializers.CollectionSerializer.write(CollectionSerializer.java:40)
    at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:575)
    at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80)
    at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:505)
    at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:557)
    at org.transitclock.core.dataCache.ehcache.serializers.StopEventsKyroSerializer.serialize(StopEventsKyroSerializer.java:32)
    at org.transitclock.core.dataCache.ehcache.serializers.StopEventsKyroSerializer.serialize(StopEventsKyroSerializer.java:16)
    at org.ehcache.impl.internal.store.offheap.portability.OffHeapValueHolderPortability.encode(OffHeapValueHolderPortability.java:52)
    at org.ehcache.impl.internal.store.offheap.portability.OffHeapValueHolderPortability.encode(OffHeapValueHolderPortability.java:31)
    at org.terracotta.offheapstore.storage.PortabilityBasedStorageEngine.writeMapping(PortabilityBasedStorageEngine.java:64)
    at org.terracotta.offheapstore.OffHeapHashMap.tryWriteEntry(OffHeapHashMap.java:703)
    at org.terracotta.offheapstore.OffHeapHashMap.writeEntry(OffHeapHashMap.java:687)
    at org.terracotta.offheapstore.OffHeapHashMap.computeWithMetadata(OffHeapHashMap.java:1947)
    at org.terracotta.offheapstore.AbstractLockedOffHeapHashMap.computeWithMetadata(AbstractLockedOffHeapHashMap.java:582)
    at org.terracotta.offheapstore.concurrent.AbstractConcurrentOffHeapMap.computeWithMetadata(AbstractConcurrentOffHeapMap.java:729)
    at org.ehcache.impl.internal.store.offheap.EhcacheConcurrentOffHeapClockCache.compute(EhcacheConcurrentOffHeapClockCache.java:152)
    at org.ehcache.impl.internal.store.offheap.AbstractOffHeapStore.computeWithRetry(AbstractOffHeapStore.java:1094)
    ... 24 common frames omitted
Caused by: java.lang.ClassCastException: org.transitclock.core.dataCache.StopEvents cannot be cast to java.lang.String
    at com.esotericsoftware.kryo.serializers.DefaultSerializers$StringSerializer.write(DefaultSerializers.java:187)
    at com.esotericsoftware.kryo.Kryo.writeObjectOrNull(Kryo.java:629)
    at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:87)
    ... 44 common frames omitted
scrudden commented 3 years ago

Think the cause is #211.