[ 
https://issues.apache.org/jira/browse/NIFI-7930?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17746716#comment-17746716
 ] 

Matt Burgess commented on NIFI-7930:
------------------------------------

If we would have to extend RPATH functions for this, I'm not sure it makes 
sense. This kind of use case doesn't feel like SQL to me. I'm going to to try 
to come up with a JSLT solution and if that's successful I think we should 
recommend these highly-structural filters to be applied with 
JSLTTransformRecord vs QueryRecord (SQL).

> QueryRecord fails with RPATH on arrays
> --------------------------------------
>
>                 Key: NIFI-7930
>                 URL: https://issues.apache.org/jira/browse/NIFI-7930
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Extensions
>            Reporter: Pierre Villard
>            Priority: Major
>
> When executing QueryRecord using a query with RPATH on arrays like the one 
> provided in the additional details of the processor's documentation, it fails 
> with the following stack trace:
> {noformat}
> 2793 [pool-1-thread-1] ERROR org.apache.nifi.processors.standard.QueryRecord 
> - QueryRecord[id=56b8b985-0609-4e52-9124-1bcbbbb8afab] Unable to query 
> FlowFile[0,fields-value-name.json,465B] due to java.lang.ClassCastException: 
> [Ljava.lang.Object; cannot be cast to java.util.List: 
> java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to 
> java.util.List
> java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to 
> java.util.List
>       at Baz$1$1.moveNext(Unknown Source)
>       at 
> org.apache.calcite.linq4j.Linq4j$EnumeratorIterator.<init>(Linq4j.java:675)
>       at org.apache.calcite.linq4j.Linq4j.enumeratorIterator(Linq4j.java:95)
>       at 
> org.apache.calcite.linq4j.AbstractEnumerable.iterator(AbstractEnumerable.java:33)
>       at org.apache.calcite.avatica.MetaImpl.createCursor(MetaImpl.java:82)
>       at 
> org.apache.calcite.avatica.AvaticaResultSet.execute(AvaticaResultSet.java:184)
>       at 
> org.apache.calcite.jdbc.CalciteResultSet.execute(CalciteResultSet.java:64)
>       at 
> org.apache.calcite.jdbc.CalciteResultSet.execute(CalciteResultSet.java:43)
>       at 
> org.apache.calcite.avatica.AvaticaConnection.executeQueryInternal(AvaticaConnection.java:573)
>       at 
> org.apache.calcite.avatica.AvaticaPreparedStatement.executeQuery(AvaticaPreparedStatement.java:137)
>       at 
> org.apache.nifi.processors.standard.QueryRecord.query(QueryRecord.java:465)
>       at 
> org.apache.nifi.processors.standard.QueryRecord.onTrigger(QueryRecord.java:320)
>       at 
> org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
>       at 
> org.apache.nifi.util.StandardProcessorTestRunner$RunProcessor.call(StandardProcessorTestRunner.java:270)
>       at 
> org.apache.nifi.util.StandardProcessorTestRunner$RunProcessor.call(StandardProcessorTestRunner.java:264)
>       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>       at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
>       at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>       at java.lang.Thread.run(Thread.java:748) {noformat}
> A unit test reproducing the issue is available here:
> [https://github.com/pvillard31/nifi/commit/1016b4a540fab22bcad119e7ffe2363b99c07a0c]
> I didn't get the time/opportunity to work on a fix for this.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to