Uploaded image for project: 'Camel-K'
  1. Camel-K
  2. CMLK-1907

Pipe with aws-ddb-streams-source kamelet throws com.google.gson.JsonIOException

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Undefined Undefined
    • camel-k-2.3
    • camel-k-2.3
    • None
    • Very Likely
    • 0

      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
      
      

            christoph.deppisch Christoph Deppisch
            lfabriko@redhat.com Lucie Krejcirova
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: