-
Bug
-
Resolution: Done
-
Undefined
-
camel-k-2.3
-
None
On OCP 4.15, with CK 2.2.0 CK1, serverless operator 1.32.0, pipe aws-ddb-streams-source to InmemoryChannel throws following error after receiving message:
2024-03-29 09:05:16,597 ERROR [org.apa.cam.pro.err.DefaultErrorHandler] (Camel (camel-1) thread #1 - aws2-ddbstream://DynamoDBSourceKameletITCase1711703059708) Failed delivery for (MessageId: CC586738711F482-0000000000000000 on ExchangeId: CC586738711F482-0000000000000000). Exhausted after delivery attempt: 1 caught: com.google.gson.JsonIOException: Failed making field 'java.time.Instant#seconds' accessible; either increase its visibility or write a custom TypeAdapter for its declaring type. Message History (complete message history is disabled) --------------------------------------------------------------------------------------------------------------------------------------- Source ID Processor Elapsed (ms) aws-ddb-streams-source.kamelet.yaml:129 source/source from[aws2-ddbstream://DynamoDBSourceKameletITCase1 254789243 ... aws-ddb-streams-source.kamelet.yaml:140 source/marshal1 marshal[org.apache.camel.model.dataformat.JsonData 0 Stacktrace ---------------------------------------------------------------------------------------------------------------------------------------: com.google.gson.JsonIOException: Failed making field 'java.time.Instant#seconds' 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.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:160) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:294) 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.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:160) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:294) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:130) at com.google.gson.Gson.getAdapter(Gson.java:556) at com.google.gson.Gson.toJson(Gson.java:834) at com.google.gson.Gson.toJson(Gson.java:812) at com.google.gson.Gson.toJson(Gson.java:783) at org.apache.camel.component.gson.GsonDataFormat.marshal(GsonDataFormat.java:145) at org.apache.camel.support.processor.MarshalProcessor.process(MarshalProcessor.java:64) at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.run(RedeliveryErrorHandler.java:475) at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.executeReactiveWork(DefaultReactiveExecutor.java:196) at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:164) at org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:59) at org.apache.camel.processor.Pipeline.process(Pipeline.java:163) at org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:383) at org.apache.camel.component.aws2.ddbstream.Ddb2StreamConsumer.processBatch(Ddb2StreamConsumer.java:115) at org.apache.camel.component.aws2.ddbstream.Ddb2StreamConsumer.poll(Ddb2StreamConsumer.java:85) at org.apache.camel.support.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:203) at org.apache.camel.support.ScheduledPollConsumer.run(ScheduledPollConsumer.java:117) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) 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:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:840) Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field private final long java.time.Instant.seconds accessible: module java.base does not "opens java.time" to unnamed module @8e0379d 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) ... 32 more
aws dynamodb put-item --table-name DynamoDBSourceKameletITCase1711703123135 --item '{"table-public-key": {"S": "2"}, "message": {"S": "hello"}}'
apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
annotations:
generation: 1
name: aws-ddb-streams-source-kbinmem-kamelet-to-inmem
namespace: lfabriko
resourceVersion: "3116372"
uid: 00084349-3689-43ab-8bc9-2fa62fcc2b1b
spec:
sink:
properties: {}
ref:
apiVersion: messaging.knative.dev/v1
kind: InMemoryChannel
name: chc3f
namespace: lfabriko
source:
properties:
accessKey: xxx
accountId: xxx
region: us-west-1
secretKey: xxx
streamIteratorType: FROM_START
table: DynamoDBSourceKameletITCase1711703123135
ref:
apiVersion: camel.apache.org/v1
kind: Kamelet
name: aws-ddb-streams-source
namespace: lfabriko