[ https://issues.apache.org/jira/browse/NIFI-7249?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tamas Palfy updated NIFI-7249: ------------------------------ Description: *Assessment* {code:java} // Some comments here public String getFoo() { return foo; } {code} Couple of concepts * _Compatible_ vs _matching_ _type_ A _type_ matches another _type_ or _value_ if logically identical to said another _type_ or the _value_'s real _type_ A _type_ is compatible with another _type_ or _value_ if said _another_ can be written as _type_ ** For example 1.25 is compatible with Double but also with Integer ---- *Issue report* Severe regression in Version 1.11.3, compared to 1.9.2: Record based processors cannot deserialize Avro messages any longer. Examples: * ConsumeKafkaRecord: with embedded Avro schema or using Confluent Schema Registry * ConvertRecord: with embedded Avro schema or using Confluent Schema Registry, too * probably others as well... Error messages: {noformat} ConvertRecord[id=c3ed29c6-0170-1000-a960-809827e7654d] Failed to process StandardFlowFileRecord[uuid=b3869d82-6c50-484e-8d0c-b64b5d5a3ac3,claim=StandardContentClaim [resourceClaim=StandardResourceClaim[id=1584002690648-1091, container=default, section=67], offset=276387, length=3487] ,offset=0,name=b3869d82-6c50-484e-8d0c-b64b5d5a3ac3,size=3487]; will route to failure: Could not parse incoming data{noformat} {noformat} ConsumeKafkaRecord_2_0[id=d9ebdbda-51b7-38ce-b43e-3197322bd2e1] Failed to parse message from Kafka using the configured Record Reader. Will route message as its own FlowFile to the 'parse.failure' relationship: org.apache.nifi.serialization.MalformedRecordException: Error while getting next record. Root cause: java.lang.ClassCastException {noformat} However, the messages with enmbedded schema can flawlessly be converted to JSON using ConvertAvroToJson. The behavior has been confirmed using various different flows and configurations with different Java versions. A downgrade to Nifi 1.9.2 resolves the issue, a subsequent upgrade to 1.11.3 brings it back. Please find attached a minimal example template... Stack traces: {noformat} 2020-03-12 09:37:16,628 DEBUG [Timer-Driven Process Thread-4] org.apache.nifi.avro.AvroTypeUtil fail to convert field tags java.lang.ClassCastException: class org.apache.avro.util.Utf8 cannot be cast to class java.lang.String (org.apache.avro.util.Utf8 is in unnamed module of loader org.apache.nifi.nar.NarClassLoader @515ebef3; java.lang.String is in module java.base of loader 'bootstrap') at org.apache.nifi.serialization.record.util.DataTypeUtils.inferRecordDataType(DataTypeUtils.java:544) at org.apache.nifi.serialization.record.util.DataTypeUtils.inferDataType(DataTypeUtils.java:478) at org.apache.nifi.serialization.record.util.DataTypeUtils.findMostSuitableType(DataTypeUtils.java:267) at org.apache.nifi.avro.AvroTypeUtil.convertUnionFieldValue(AvroTypeUtil.java:882) at org.apache.nifi.avro.AvroTypeUtil.normalizeValue(AvroTypeUtil.java:1004) at org.apache.nifi.avro.AvroTypeUtil.convertAvroRecordToMap(AvroTypeUtil.java:857) at org.apache.nifi.avro.AvroTypeUtil.convertAvroRecordToMap(AvroTypeUtil.java:830) at org.apache.nifi.avro.AvroRecordReader.nextRecord(AvroRecordReader.java:45) at org.apache.nifi.serialization.RecordReader.nextRecord(RecordReader.java:50) at org.apache.nifi.processors.standard.AbstractRecordProcessor$1.process(AbstractRecordProcessor.java:131) at org.apache.nifi.controller.repository.StandardProcessSession.write(StandardProcessSession.java:3006) at org.apache.nifi.processors.standard.AbstractRecordProcessor.onTrigger(AbstractRecordProcessor.java:122) at org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27) at org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1176) at org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:213) at org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:117) at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) 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:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834)2020-03-12 09:37:16,632 ERROR [Timer-Driven Process Thread-4] o.a.n.processors.standard.ConvertRecord ConvertRecord[id=c3ed29c6-0170-1000-a960-809827e7654d] Failed to process StandardFlowFileRecord[uuid=33856f9d-1991-4c95-90c2-3ffd032fc840,claim=StandardContentClaim [resourceClaim=StandardResourceClaim[id=1584005835899-1, container=default, section=1], offset=851, length=3487],offset=0,name=33856f9d-1991-4c95-90c2-3ffd032fc840,size=3487]; will route to failure: org.apache.nifi.processor.exception.ProcessException: Could not parse incoming data org.apache.nifi.processor.exception.ProcessException: Could not parse incoming data at org.apache.nifi.processors.standard.AbstractRecordProcessor$1.process(AbstractRecordProcessor.java:171) at org.apache.nifi.controller.repository.StandardProcessSession.write(StandardProcessSession.java:3006) at org.apache.nifi.processors.standard.AbstractRecordProcessor.onTrigger(AbstractRecordProcessor.java:122) at org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27) at org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1176) at org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:213) at org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:117) at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) 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:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834) Caused by: org.apache.nifi.serialization.MalformedRecordException: Error while getting next record. Root cause: java.lang.ClassCastException: class org.apache.avro.util.Utf8 cannot be cast to class java.lang.String (org.apache.avro.util.Utf8 is in unnamed module of loader org.apache.nifi.nar.NarClassLoader @515ebef3; java.lang.String is in module java.base of loader 'bootstrap') at org.apache.nifi.avro.AvroRecordReader.nextRecord(AvroRecordReader.java:52) at org.apache.nifi.serialization.RecordReader.nextRecord(RecordReader.java:50) at org.apache.nifi.processors.standard.AbstractRecordProcessor$1.process(AbstractRecordProcessor.java:131) ... 13 common frames omitted Caused by: java.lang.ClassCastException: class org.apache.avro.util.Utf8 cannot be cast to class java.lang.String (org.apache.avro.util.Utf8 is in unnamed module of loader org.apache.nifi.nar.NarClassLoader @515ebef3; java.lang.String is in module java.base of loader 'bootstrap') at org.apache.nifi.serialization.record.util.DataTypeUtils.inferRecordDataType(DataTypeUtils.java:544) at org.apache.nifi.serialization.record.util.DataTypeUtils.inferDataType(DataTypeUtils.java:478) at org.apache.nifi.serialization.record.util.DataTypeUtils.findMostSuitableType(DataTypeUtils.java:267) at org.apache.nifi.avro.AvroTypeUtil.convertUnionFieldValue(AvroTypeUtil.java:882) at org.apache.nifi.avro.AvroTypeUtil.normalizeValue(AvroTypeUtil.java:1004) at org.apache.nifi.avro.AvroTypeUtil.convertAvroRecordToMap(AvroTypeUtil.java:857) at org.apache.nifi.avro.AvroTypeUtil.convertAvroRecordToMap(AvroTypeUtil.java:830) at org.apache.nifi.avro.AvroRecordReader.nextRecord(AvroRecordReader.java:45) ... 15 common frames omitted {noformat} was: Severe regression in Version 1.11.3, compared to 1.9.2: Record based processors cannot deserialize Avro messages any longer. Examples: * ConsumeKafkaRecord: with embedded Avro schema or using Confluent Schema Registry * ConvertRecord: with embedded Avro schema or using Confluent Schema Registry, too * probably others as well... Error messages: {noformat} ConvertRecord[id=c3ed29c6-0170-1000-a960-809827e7654d] Failed to process StandardFlowFileRecord[uuid=b3869d82-6c50-484e-8d0c-b64b5d5a3ac3,claim=StandardContentClaim [resourceClaim=StandardResourceClaim[id=1584002690648-1091, container=default, section=67], offset=276387, length=3487] ,offset=0,name=b3869d82-6c50-484e-8d0c-b64b5d5a3ac3,size=3487]; will route to failure: Could not parse incoming data{noformat} {noformat} ConsumeKafkaRecord_2_0[id=d9ebdbda-51b7-38ce-b43e-3197322bd2e1] Failed to parse message from Kafka using the configured Record Reader. Will route message as its own FlowFile to the 'parse.failure' relationship: org.apache.nifi.serialization.MalformedRecordException: Error while getting next record. Root cause: java.lang.ClassCastException {noformat} However, the messages with enmbedded schema can flawlessly be converted to JSON using ConvertAvroToJson. The behavior has been confirmed using various different flows and configurations with different Java versions. A downgrade to Nifi 1.9.2 resolves the issue, a subsequent upgrade to 1.11.3 brings it back. Please find attached a minimal example template... Stack traces: {noformat} 2020-03-12 09:37:16,628 DEBUG [Timer-Driven Process Thread-4] org.apache.nifi.avro.AvroTypeUtil fail to convert field tags java.lang.ClassCastException: class org.apache.avro.util.Utf8 cannot be cast to class java.lang.String (org.apache.avro.util.Utf8 is in unnamed module of loader org.apache.nifi.nar.NarClassLoader @515ebef3; java.lang.String is in module java.base of loader 'bootstrap') at org.apache.nifi.serialization.record.util.DataTypeUtils.inferRecordDataType(DataTypeUtils.java:544) at org.apache.nifi.serialization.record.util.DataTypeUtils.inferDataType(DataTypeUtils.java:478) at org.apache.nifi.serialization.record.util.DataTypeUtils.findMostSuitableType(DataTypeUtils.java:267) at org.apache.nifi.avro.AvroTypeUtil.convertUnionFieldValue(AvroTypeUtil.java:882) at org.apache.nifi.avro.AvroTypeUtil.normalizeValue(AvroTypeUtil.java:1004) at org.apache.nifi.avro.AvroTypeUtil.convertAvroRecordToMap(AvroTypeUtil.java:857) at org.apache.nifi.avro.AvroTypeUtil.convertAvroRecordToMap(AvroTypeUtil.java:830) at org.apache.nifi.avro.AvroRecordReader.nextRecord(AvroRecordReader.java:45) at org.apache.nifi.serialization.RecordReader.nextRecord(RecordReader.java:50) at org.apache.nifi.processors.standard.AbstractRecordProcessor$1.process(AbstractRecordProcessor.java:131) at org.apache.nifi.controller.repository.StandardProcessSession.write(StandardProcessSession.java:3006) at org.apache.nifi.processors.standard.AbstractRecordProcessor.onTrigger(AbstractRecordProcessor.java:122) at org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27) at org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1176) at org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:213) at org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:117) at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) 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:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834)2020-03-12 09:37:16,632 ERROR [Timer-Driven Process Thread-4] o.a.n.processors.standard.ConvertRecord ConvertRecord[id=c3ed29c6-0170-1000-a960-809827e7654d] Failed to process StandardFlowFileRecord[uuid=33856f9d-1991-4c95-90c2-3ffd032fc840,claim=StandardContentClaim [resourceClaim=StandardResourceClaim[id=1584005835899-1, container=default, section=1], offset=851, length=3487],offset=0,name=33856f9d-1991-4c95-90c2-3ffd032fc840,size=3487]; will route to failure: org.apache.nifi.processor.exception.ProcessException: Could not parse incoming data org.apache.nifi.processor.exception.ProcessException: Could not parse incoming data at org.apache.nifi.processors.standard.AbstractRecordProcessor$1.process(AbstractRecordProcessor.java:171) at org.apache.nifi.controller.repository.StandardProcessSession.write(StandardProcessSession.java:3006) at org.apache.nifi.processors.standard.AbstractRecordProcessor.onTrigger(AbstractRecordProcessor.java:122) at org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27) at org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1176) at org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:213) at org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:117) at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) 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:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834) Caused by: org.apache.nifi.serialization.MalformedRecordException: Error while getting next record. Root cause: java.lang.ClassCastException: class org.apache.avro.util.Utf8 cannot be cast to class java.lang.String (org.apache.avro.util.Utf8 is in unnamed module of loader org.apache.nifi.nar.NarClassLoader @515ebef3; java.lang.String is in module java.base of loader 'bootstrap') at org.apache.nifi.avro.AvroRecordReader.nextRecord(AvroRecordReader.java:52) at org.apache.nifi.serialization.RecordReader.nextRecord(RecordReader.java:50) at org.apache.nifi.processors.standard.AbstractRecordProcessor$1.process(AbstractRecordProcessor.java:131) ... 13 common frames omitted Caused by: java.lang.ClassCastException: class org.apache.avro.util.Utf8 cannot be cast to class java.lang.String (org.apache.avro.util.Utf8 is in unnamed module of loader org.apache.nifi.nar.NarClassLoader @515ebef3; java.lang.String is in module java.base of loader 'bootstrap') at org.apache.nifi.serialization.record.util.DataTypeUtils.inferRecordDataType(DataTypeUtils.java:544) at org.apache.nifi.serialization.record.util.DataTypeUtils.inferDataType(DataTypeUtils.java:478) at org.apache.nifi.serialization.record.util.DataTypeUtils.findMostSuitableType(DataTypeUtils.java:267) at org.apache.nifi.avro.AvroTypeUtil.convertUnionFieldValue(AvroTypeUtil.java:882) at org.apache.nifi.avro.AvroTypeUtil.normalizeValue(AvroTypeUtil.java:1004) at org.apache.nifi.avro.AvroTypeUtil.convertAvroRecordToMap(AvroTypeUtil.java:857) at org.apache.nifi.avro.AvroTypeUtil.convertAvroRecordToMap(AvroTypeUtil.java:830) at org.apache.nifi.avro.AvroRecordReader.nextRecord(AvroRecordReader.java:45) ... 15 common frames omitted {noformat} > [Regression] AvroReader: Could not parse incoming data > ------------------------------------------------------ > > Key: NIFI-7249 > URL: https://issues.apache.org/jira/browse/NIFI-7249 > Project: Apache NiFi > Issue Type: Bug > Components: Extensions > Affects Versions: 1.10.0, 1.11.0, 1.11.1, 1.11.2, 1.11.3 > Environment: Debian, Java 11 and Java 8 > Reporter: Philipp Leufke > Priority: Major > Attachments: AvroReader_bug_MWE.xml > > > *Assessment* > {code:java} > // Some comments here > public String getFoo() > { > return foo; > } > {code} > Couple of concepts > * _Compatible_ vs _matching_ _type_ > A _type_ matches another _type_ or _value_ if logically identical to said > another _type_ or the _value_'s real _type_ > A _type_ is compatible with another _type_ or _value_ if said _another_ can > be written as _type_ > ** For example 1.25 is compatible with Double but also with Integer > > ---- > *Issue report* > Severe regression in Version 1.11.3, compared to 1.9.2: > Record based processors cannot deserialize Avro messages any longer. Examples: > * ConsumeKafkaRecord: with embedded Avro schema or using Confluent Schema > Registry > * ConvertRecord: with embedded Avro schema or using Confluent Schema > Registry, too > * probably others as well... > Error messages: > {noformat} > ConvertRecord[id=c3ed29c6-0170-1000-a960-809827e7654d] > Failed to process > StandardFlowFileRecord[uuid=b3869d82-6c50-484e-8d0c-b64b5d5a3ac3,claim=StandardContentClaim > > [resourceClaim=StandardResourceClaim[id=1584002690648-1091, > container=default, section=67], offset=276387, length=3487] > ,offset=0,name=b3869d82-6c50-484e-8d0c-b64b5d5a3ac3,size=3487]; will route to > failure: > Could not parse incoming data{noformat} > {noformat} > ConsumeKafkaRecord_2_0[id=d9ebdbda-51b7-38ce-b43e-3197322bd2e1] > Failed to parse message from Kafka using the configured Record Reader. > Will route message as its own FlowFile to the 'parse.failure' relationship: > org.apache.nifi.serialization.MalformedRecordException: > Error while getting next record. Root cause: java.lang.ClassCastException > {noformat} > > However, the messages with enmbedded schema can flawlessly be converted to > JSON using ConvertAvroToJson. > > The behavior has been confirmed using various different flows and > configurations with different Java versions. A downgrade to Nifi 1.9.2 > resolves the issue, a subsequent upgrade to 1.11.3 brings it back. > > Please find attached a minimal example template... > > Stack traces: > > {noformat} > 2020-03-12 09:37:16,628 DEBUG [Timer-Driven Process Thread-4] > org.apache.nifi.avro.AvroTypeUtil fail to convert field tags > java.lang.ClassCastException: class org.apache.avro.util.Utf8 cannot be cast > to class java.lang.String (org.apache.avro.util.Utf8 is in unnamed module of > loader org.apache.nifi.nar.NarClassLoader @515ebef3; java.lang.String is in > module java.base of loader 'bootstrap') > at > org.apache.nifi.serialization.record.util.DataTypeUtils.inferRecordDataType(DataTypeUtils.java:544) > at > org.apache.nifi.serialization.record.util.DataTypeUtils.inferDataType(DataTypeUtils.java:478) > at > org.apache.nifi.serialization.record.util.DataTypeUtils.findMostSuitableType(DataTypeUtils.java:267) > at > org.apache.nifi.avro.AvroTypeUtil.convertUnionFieldValue(AvroTypeUtil.java:882) > at > org.apache.nifi.avro.AvroTypeUtil.normalizeValue(AvroTypeUtil.java:1004) > at > org.apache.nifi.avro.AvroTypeUtil.convertAvroRecordToMap(AvroTypeUtil.java:857) > at > org.apache.nifi.avro.AvroTypeUtil.convertAvroRecordToMap(AvroTypeUtil.java:830) > at > org.apache.nifi.avro.AvroRecordReader.nextRecord(AvroRecordReader.java:45) > at > org.apache.nifi.serialization.RecordReader.nextRecord(RecordReader.java:50) > at > org.apache.nifi.processors.standard.AbstractRecordProcessor$1.process(AbstractRecordProcessor.java:131) > at > org.apache.nifi.controller.repository.StandardProcessSession.write(StandardProcessSession.java:3006) > at > org.apache.nifi.processors.standard.AbstractRecordProcessor.onTrigger(AbstractRecordProcessor.java:122) > at > org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27) > at > org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1176) > at > org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:213) > at > org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:117) > at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110) > at > java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) > 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:1128) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) > at java.base/java.lang.Thread.run(Thread.java:834)2020-03-12 > 09:37:16,632 ERROR [Timer-Driven Process Thread-4] > o.a.n.processors.standard.ConvertRecord > ConvertRecord[id=c3ed29c6-0170-1000-a960-809827e7654d] Failed to process > StandardFlowFileRecord[uuid=33856f9d-1991-4c95-90c2-3ffd032fc840,claim=StandardContentClaim > [resourceClaim=StandardResourceClaim[id=1584005835899-1, container=default, > section=1], offset=851, > length=3487],offset=0,name=33856f9d-1991-4c95-90c2-3ffd032fc840,size=3487]; > will route to failure: org.apache.nifi.processor.exception.ProcessException: > Could not parse incoming data > org.apache.nifi.processor.exception.ProcessException: Could not parse > incoming data > at > org.apache.nifi.processors.standard.AbstractRecordProcessor$1.process(AbstractRecordProcessor.java:171) > at > org.apache.nifi.controller.repository.StandardProcessSession.write(StandardProcessSession.java:3006) > at > org.apache.nifi.processors.standard.AbstractRecordProcessor.onTrigger(AbstractRecordProcessor.java:122) > at > org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27) > at > org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1176) > at > org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:213) > at > org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:117) > at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110) > at > java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) > 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:1128) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) > at java.base/java.lang.Thread.run(Thread.java:834) > Caused by: org.apache.nifi.serialization.MalformedRecordException: Error > while getting next record. Root cause: java.lang.ClassCastException: class > org.apache.avro.util.Utf8 cannot be cast to class java.lang.String > (org.apache.avro.util.Utf8 is in unnamed module of loader > org.apache.nifi.nar.NarClassLoader @515ebef3; java.lang.String is in module > java.base of loader 'bootstrap') > at > org.apache.nifi.avro.AvroRecordReader.nextRecord(AvroRecordReader.java:52) > at > org.apache.nifi.serialization.RecordReader.nextRecord(RecordReader.java:50) > at > org.apache.nifi.processors.standard.AbstractRecordProcessor$1.process(AbstractRecordProcessor.java:131) > ... 13 common frames omitted > Caused by: java.lang.ClassCastException: class org.apache.avro.util.Utf8 > cannot be cast to class java.lang.String (org.apache.avro.util.Utf8 is in > unnamed module of loader org.apache.nifi.nar.NarClassLoader @515ebef3; > java.lang.String is in module java.base of loader 'bootstrap') > at > org.apache.nifi.serialization.record.util.DataTypeUtils.inferRecordDataType(DataTypeUtils.java:544) > at > org.apache.nifi.serialization.record.util.DataTypeUtils.inferDataType(DataTypeUtils.java:478) > at > org.apache.nifi.serialization.record.util.DataTypeUtils.findMostSuitableType(DataTypeUtils.java:267) > at > org.apache.nifi.avro.AvroTypeUtil.convertUnionFieldValue(AvroTypeUtil.java:882) > at > org.apache.nifi.avro.AvroTypeUtil.normalizeValue(AvroTypeUtil.java:1004) > at > org.apache.nifi.avro.AvroTypeUtil.convertAvroRecordToMap(AvroTypeUtil.java:857) > at > org.apache.nifi.avro.AvroTypeUtil.convertAvroRecordToMap(AvroTypeUtil.java:830) > at > org.apache.nifi.avro.AvroRecordReader.nextRecord(AvroRecordReader.java:45) > ... 15 common frames omitted > {noformat} > > > > -- This message was sent by Atlassian Jira (v8.3.4#803005)