View Issue Details

IDProjectCategoryView StatusLast Update
0006964SymmetricDS ProBugpublic2025-06-20 14:53
Reporteremiller Assigned Toemiller  
Prioritynormal 
Status resolvedResolutionfixed 
Product Version3.16.0 
Target Version3.16.4Fixed in Version3.16.4 
Summary0006964: Resetting the Configure Canvas throws an exception if the database returns a java.sql.Timestamp for a transform's create time
DescriptionResetting the Configure Canvas throws the following exception if there is a transform configured and the database returns a java.sql.Timestamp for the transform's create time:

2025-06-19 10:51:35,357 ERROR [gui] [DefaultErrorHandler] [qtp495708089-114] com.google.gson.JsonIOException: Failed making field 'java.sql.Timestamp#nanos' accessible; either increase its visibility or write a custom TypeAdapter for its declaring type.

    at com.google.gson.internal.reflect.ReflectionHelper.makeAccessible(ReflectionHelper.java:38)

    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:286)

    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:130)

    at com.google.gson.Gson.getAdapter(Gson.java:556)

    at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:55)

    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:196)

    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:368)

    at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:70)

    at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:97)

    at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:61)

    at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:70)

    at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:97)

    at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:61)

    at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:70)

    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:196)

    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:368)

    at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:70)

    at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:97)

    at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:61)

    at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:70)

    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:196)

    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:368)

    at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:70)

    at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:97)

    at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:61)

    at com.google.gson.Gson.toJson(Gson.java:842)

    at com.google.gson.Gson.toJson(Gson.java:812)

    at com.google.gson.Gson.toJson(Gson.java:759)

    at com.jumpmind.symmetric.console.ui.canvas.ConfigCanvasContext.updateOriginalEndpointList(ConfigCanvasContext.java:64)

    at com.jumpmind.symmetric.console.ui.canvas.ConfigCanvas.reset(ConfigCanvas.java:661)

    at com.jumpmind.symmetric.console.ui.canvas.ConfigCanvas.onAttach(ConfigCanvas.java:1706)

    at com.vaadin.flow.component.ComponentUtil.onComponentAttach(ComponentUtil.java:233)

    at com.vaadin.flow.internal.nodefeature.ComponentMapping.lambda$onAttach$0(ComponentMapping.java:104)

    at java.base/java.util.Optional.ifPresent(Optional.java:178)

    at com.vaadin.flow.internal.nodefeature.ComponentMapping.onAttach(ComponentMapping.java:103)

    at com.vaadin.flow.internal.StateNode.lambda$fireAttachListeners$9(StateNode.java:934)

    at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)

    at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)

    at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992)

    at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)

    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)

    at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)

    at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)

    at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)

    at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)

    at com.vaadin.flow.internal.StateNode.forEachFeature(StateNode.java:377)

    at com.vaadin.flow.internal.StateNode.fireAttachListeners(StateNode.java:934)

    at com.vaadin.flow.internal.StateNode.onAttach(StateNode.java:335)

    at com.vaadin.flow.internal.StateNode.setParent(StateNode.java:287)

    at com.vaadin.flow.internal.nodefeature.NodeFeature.attachPotentialChild(NodeFeature.java:80)

    at com.vaadin.flow.internal.nodefeature.StateNodeNodeList.add(StateNodeNodeList.java:55)

    at com.vaadin.flow.internal.nodefeature.ElementChildrenList.add(ElementChildrenList.java:44)

    at com.vaadin.flow.dom.impl.AbstractNodeStateProvider.insertChild(AbstractNodeStateProvider.java:107)

    at com.vaadin.flow.dom.Node.insertChild(Node.java:391)

    at com.vaadin.flow.dom.Node.appendChild(Node.java:163)

    at com.vaadin.flow.dom.Node.appendChild(Node.java:147)

    at com.vaadin.flow.component.HasComponents.lambda$add$1(HasComponents.java:75)

    at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)

    at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)

    at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)

    at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992)

    at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)

    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)

    at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)

    at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)

    at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)

    at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)

    at com.vaadin.flow.component.HasComponents.add(HasComponents.java:75)

    at com.vaadin.flow.component.HasComponents.add(HasComponents.java:58)

    at com.vaadin.flow.component.orderedlayout.VerticalLayout.addAndExpand(VerticalLayout.java:270)

    at com.jumpmind.symmetric.console.ui.screen.ConfigScreen.lambda$2(ConfigScreen.java:81)

    at com.vaadin.flow.component.ComponentEventBus.fireEventForListener(ComponentEventBus.java:239)

    at com.vaadin.flow.component.ComponentEventBus.handleDomEvent(ComponentEventBus.java:488)

    at com.vaadin.flow.component.ComponentEventBus.lambda$addDomTrigger$dd1b7957$1(ComponentEventBus.java:298)

    at com.vaadin.flow.internal.nodefeature.ElementListenerMap.lambda$fireEvent$2(ElementListenerMap.java:447)

    at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)

    at com.vaadin.flow.internal.nodefeature.ElementListenerMap.fireEvent(ElementListenerMap.java:447)

    at com.vaadin.flow.server.communication.rpc.EventRpcHandler.handleNode(EventRpcHandler.java:62)

    at com.vaadin.flow.server.communication.rpc.AbstractRpcInvocationHandler.handle(AbstractRpcInvocationHandler.java:74)

    at com.vaadin.flow.server.communication.ServerRpcHandler.handleInvocationData(ServerRpcHandler.java:475)

    at com.vaadin.flow.server.communication.ServerRpcHandler.lambda$handleInvocations$5(ServerRpcHandler.java:456)

    at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)

    at com.vaadin.flow.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:456)

    at com.vaadin.flow.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:324)

    at com.vaadin.flow.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:114)

    at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)

    at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1577)

    at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:398)

    at com.jumpmind.symmetric.console.ui.AppServlet.service(AppServlet.java:28)

    at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)

    at org.eclipse.jetty.ee10.servlet.ServletHolder.handle(ServletHolder.java:736)

    at org.eclipse.jetty.ee10.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1622)

    at org.eclipse.jetty.ee10.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:195)

    at org.eclipse.jetty.ee10.servlet.FilterHolder.doFilter(FilterHolder.java:205)

    at org.eclipse.jetty.ee10.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1594)

    at org.jumpmind.symmetric.web.HttpMethodFilter.doFilter(HttpMethodFilter.java:60)

    at org.eclipse.jetty.ee10.servlet.FilterHolder.doFilter(FilterHolder.java:205)

    at org.eclipse.jetty.ee10.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1594)

    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)

    at org.eclipse.jetty.ee10.servlet.FilterHolder.doFilter(FilterHolder.java:205)

    at org.eclipse.jetty.ee10.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1594)

    at org.eclipse.jetty.ee10.servlet.ServletHandler$MappedServlet.handle(ServletHandler.java:1555)

    at org.eclipse.jetty.ee10.servlet.ServletChannel.dispatch(ServletChannel.java:819)

    at org.eclipse.jetty.ee10.servlet.ServletChannel.handle(ServletChannel.java:436)

    at org.eclipse.jetty.ee10.servlet.ServletHandler.handle(ServletHandler.java:470)

    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:575)

    at org.eclipse.jetty.ee10.servlet.SessionHandler.handle(SessionHandler.java:717)

    at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1064)

    at org.eclipse.jetty.server.Handler$Wrapper.handle(Handler.java:740)

    at org.eclipse.jetty.server.handler.EventsHandler.handle(EventsHandler.java:81)

    at org.eclipse.jetty.server.Server.handle(Server.java:182)

    at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:662)

    at org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:416)

    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:322)

    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:99)

    at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)

    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:480)

    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:443)

    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:293)

    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:201)

    at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:311)

    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:979)

    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1209)

    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1164)

    at java.base/java.lang.Thread.run(Thread.java:833)

Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field private int java.sql.Timestamp.nanos accessible: module java.sql does not "opens java.sql" to unnamed module @6f10d5b6

    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)

    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)

    at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:178)

    at java.base/java.lang.reflect.Field.setAccessible(Field.java:172)

    at com.google.gson.internal.reflect.ReflectionHelper.makeAccessible(ReflectionHelper.java:35)

    ... 125 more
Tagsui

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2025-06-19 19:24 emiller New Issue
2025-06-19 19:24 emiller Status new => assigned
2025-06-19 19:24 emiller Assigned To => emiller
2025-06-19 19:24 emiller Tag Attached: ui
2025-06-20 14:53 emiller Status assigned => resolved
2025-06-20 14:53 emiller Resolution open => fixed
2025-06-20 14:53 emiller Fixed in Version => 3.16.4