Luis Sergio Faria Carneiro created CAMEL-22297: --------------------------------------------------
Summary: camel-jsonata does not support json array inputs Key: CAMEL-22297 URL: https://issues.apache.org/jira/browse/CAMEL-22297 Project: Camel Issue Type: Bug Affects Versions: 4.13.0, 4.10.6, 4.8.8 Reporter: Luis Sergio Faria Carneiro The jsonata component fails if the input body is a json array with the following exception: {code:java} com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap<java.lang.String,java.lang.Object>` from Array value (token `JsonToken.START_ARRAY`) at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 1] at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59) ~[jackson-databind-2.19.1.jar:2.19.1] at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1794) ~[jackson-databind-2.19.1.jar:2.19.1] at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1568) ~[jackson-databind-2.19.1.jar:2.19.1] at com.fasterxml.jackson.databind.deser.std.StdDeserializer._deserializeFromArray(StdDeserializer.java:221) ~[jackson-databind-2.19.1.jar:2.19.1] at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:456) ~[jackson-databind-2.19.1.jar:2.19.1] at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:31) ~[jackson-databind-2.19.1.jar:2.19.1] at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:342) ~[jackson-databind-2.19.1.jar:2.19.1] at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4971) ~[jackson-databind-2.19.1.jar:2.19.1] at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3932) ~[jackson-databind-2.19.1.jar:2.19.1] at org.apache.camel.component.jsonata.JsonataEndpoint.onExchange(JsonataEndpoint.java:152) ~[camel-jsonata-4.13.0.jar:4.13.0] at org.apache.camel.support.ProcessorEndpoint$1.process(ProcessorEndpoint.java:61) ~[camel-support-4.13.0.jar:4.13.0] at org.apache.camel.support.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:65) ~[camel-support-4.13.0.jar:4.13.0] at org.apache.camel.processor.SendProcessor.sendUsingProducer(SendProcessor.java:252) ~[camel-core-processor-4.13.0.jar:4.13.0] at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:157) ~[camel-core-processor-4.13.0.jar:4.13.0] at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.handleFirst(RedeliveryErrorHandler.java:440) ~[camel-core-processor-4.13.0.jar:4.13.0] at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.run(RedeliveryErrorHandler.java:416) ~[camel-core-processor-4.13.0.jar:4.13.0] at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.doRun(DefaultReactiveExecutor.java:199) ~[camel-base-engine-4.13.0.jar:4.13.0] at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.executeReactiveWork(DefaultReactiveExecutor.java:189) ~[camel-base-engine-4.13.0.jar:4.13.0] at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.tryExecuteReactiveWork(DefaultReactiveExecutor.java:166) ~[camel-base-engine-4.13.0.jar:4.13.0] at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148) ~[camel-base-engine-4.13.0.jar:4.13.0] at org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:59) ~[camel-base-engine-4.13.0.jar:4.13.0] at org.apache.camel.processor.Pipeline.process(Pipeline.java:163) ~[camel-core-processor-4.13.0.jar:4.13.0] at org.apache.camel.impl.engine.CamelInternalProcessor.processNonTransacted(CamelInternalProcessor.java:347) ~[camel-base-engine-4.13.0.jar:4.13.0] at org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:323) ~[camel-base-engine-4.13.0.jar:4.13.0] at org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:82) ~[camel-base-engine-4.13.0.jar:4.13.0] at org.apache.camel.support.AsyncProcessorSupport.process(AsyncProcessorSupport.java:32) ~[camel-support-4.13.0.jar:4.13.0] at org.apache.camel.component.platform.http.vertx.VertxPlatformHttpConsumer.processExchange(VertxPlatformHttpConsumer.java:269) ~[camel-platform-http-vertx-4.13.0.jar:4.13.0] at org.apache.camel.component.platform.http.vertx.VertxPlatformHttpConsumer.lambda$handleRequest$1(VertxPlatformHttpConsumer.java:229) ~[camel-platform-http-vertx-4.13.0.jar:4.13.0] at io.vertx.core.impl.ContextImpl.lambda$executeBlocking$4(ContextImpl.java:192) ~[vertx-core-4.5.16.jar:4.5.16] at io.vertx.core.impl.ContextInternal.dispatch(ContextInternal.java:270) [vertx-core-4.5.16.jar:4.5.16] at io.vertx.core.impl.ContextImpl$1.execute(ContextImpl.java:221) [vertx-core-4.5.16.jar:4.5.16] at io.vertx.core.impl.WorkerTask.run(WorkerTask.java:56) [vertx-core-4.5.16.jar:4.5.16] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?] at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.119.Final.jar:4.1.119.Final] at java.base/java.lang.Thread.run(Thread.java:840) [?:?] {code} *Reproducer:* Consider integration.yaml: {code:java} - from: uri: rest:get:/test steps: - setBody: constant: "[1, 2, 3]" - to: uri: "jsonata:transform.jsonata" parameters: inputType: JsonString outputType: JsonString {code} and transform.jsonata: {code:java} $.{ "double": 2 * $ } {code} Run the code with jbang: {code:java} jbang -Dcamel.jbang.version=4.13.0 camel@apache/camel run integration.yaml transform.jsonata {code} and submit a get request to the endpoint. {code:java} curl http://localhost:8080/test {code} The same data on [https://try.jsonata.org/] yields the result: {code:java} [ { "double": 2 }, { "double": 4 }, { "double": 6 }] {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)