View Issue Details

IDProjectCategoryView StatusLast Update
0006118SymmetricDS ProBugpublic2023-11-21 21:57
Reporterjvanmeter Assigned Tojvanmeter  
Prioritynormal 
Status closedResolutionfixed 
Product Version3.14.0 
Target Version3.14.11Fixed in Version3.14.11 
Summary0006118: The logminer fails to serialize/deserialize timestamps
DescriptionWhen you have a long running transaction that contains a timestamp column and SymmetricDS tries to serialize it and store it, it runs into issues as seen by the following:

2023-11-21 11:58:49,488 ERROR [source] [LogMinerService] [source-job-7] Failed to mine the log StackTraceKey.init [RuntimeException:1265107615] java.lang.RuntimeException: Unable to create instance of interface java.time.format.DateTimeFormatterBuilder$DateTimePrinterParser. Registering an InstanceCreator or a TypeAdapter for this type, or adding a no-args constructor may fix this problem.
    at com.google.gson.internal.ConstructorConstructor$16.construct(ConstructorConstructor.java:275)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:211)
    at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:41)
    at com.google.gson.internal.bind.ArrayTypeAdapter.read(ArrayTypeAdapter.java:72)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:130)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:221)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:130)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:221)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:130)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:221)
    at com.google.gson.Gson.fromJson(Gson.java:991)
    at com.google.gson.Gson.fromJson(Gson.java:1062)
    at com.google.gson.internal.bind.TreeTypeAdapter$GsonContextImpl.deserialize(TreeTypeAdapter.java:163)
    at com.jumpmind.symmetric.console.impl.eN.a(Element.java:104)
    at com.jumpmind.symmetric.console.impl.eN.deserialize(Element.java:26)
    at com.google.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:69)
    at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:41)
    at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:187)
    at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:145)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:130)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:221)
    at com.google.gson.Gson.fromJson(Gson.java:991)
    at com.google.gson.Gson.fromJson(Gson.java:1062)
    at com.google.gson.internal.bind.TreeTypeAdapter$GsonContextImpl.deserialize(TreeTypeAdapter.java:163)
    at com.jumpmind.symmetric.console.impl.eN.a(Element.java:104)
    at com.jumpmind.symmetric.console.impl.eN.deserialize(Element.java:26)
    at com.google.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:69)
    at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:41)
    at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:187)
    at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:145)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:130)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:221)
    at com.google.gson.Gson.fromJson(Gson.java:991)
    at com.google.gson.Gson.fromJson(Gson.java:1062)
    at com.google.gson.internal.bind.TreeTypeAdapter$GsonContextImpl.deserialize(TreeTypeAdapter.java:163)
    at com.jumpmind.symmetric.console.impl.eN.a(Element.java:104)
    at com.jumpmind.symmetric.console.impl.eN.deserialize(Element.java:26)
    at com.google.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:69)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:130)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:221)
    at com.google.gson.Gson.fromJson(Gson.java:991)
    at com.google.gson.Gson.fromJson(Gson.java:956)
    at com.google.gson.Gson.fromJson(Gson.java:905)
    at com.google.gson.Gson.fromJson(Gson.java:876)
    at com.jumpmind.symmetric.console.impl.ec.b(DataQueue.java:105)
    at com.jumpmind.symmetric.console.impl.ec.c(DataQueue.java:115)
    at com.jumpmind.symmetric.console.impl.et.d(TransactionMiner.java:401)
    at com.jumpmind.symmetric.console.impl.et.g(TransactionMiner.java:392)
    at com.jumpmind.symmetric.console.service.impl.LogMinerService.mineDataForTables(LogMinerService.java:173)
    at com.jumpmind.symmetric.console.service.impl.LogMinerService.mineData(LogMinerService.java:76)
    at org.jumpmind.symmetric.job.LogMinerJob.doJob(LogMinerJob.java:44)
    at org.jumpmind.symmetric.job.AbstractJob.invoke(AbstractJob.java:200)
    at org.jumpmind.symmetric.job.AbstractJob.run(AbstractJob.java:266)
    at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
    at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.UnsupportedOperationException: Interface can't be instantiated! Interface name: java.time.format.DateTimeFormatterBuilder$DateTimePrinterParser
    at com.google.gson.internal.UnsafeAllocator.assertInstantiable(UnsafeAllocator.java:118)
    at com.google.gson.internal.UnsafeAllocator$1.newInstance(UnsafeAllocator.java:49)
    at com.google.gson.internal.ConstructorConstructor$16.construct(ConstructorConstructor.java:272)
    ... 59 more
Tagslog miner

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2023-11-21 21:01 jvanmeter New Issue
2023-11-21 21:01 jvanmeter Status new => assigned
2023-11-21 21:01 jvanmeter Assigned To => jvanmeter
2023-11-21 21:01 jvanmeter Tag Attached: log miner
2023-11-21 21:57 jvanmeter Status assigned => resolved
2023-11-21 21:57 jvanmeter Resolution open => fixed
2023-11-21 21:57 jvanmeter Fixed in Version => 3.14.11
2023-12-16 01:56 admin Status resolved => closed