[ https://issues.apache.org/jira/browse/NIFI-7981?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17226878#comment-17226878 ]
Pierre Villard commented on NIFI-7981: -------------------------------------- Correction: this can be reproduced using an Avro writer. {noformat} [pool-1-thread-1] ERROR org.apache.nifi.processors.standard.ConvertRecord - ConvertRecord[id=7a06f324-13d1-40da-9e17-00d902dfe958] Failed to process FlowFile[0,person_bad_enum.json,101B]; will route to failure: org.apache.avro.file.DataFileWriter$AppendWriteException: java.lang.NullPointerException: null of nifi.statusEnum of union in field status of nifi.personWithNameRecord org.apache.avro.file.DataFileWriter$AppendWriteException: java.lang.NullPointerException: null of nifi.statusEnum of union in field status of nifi.personWithNameRecord at org.apache.avro.file.DataFileWriter.append(DataFileWriter.java:308) at org.apache.nifi.avro.WriteAvroResultWithSchema.writeRecord(WriteAvroResultWithSchema.java:61) at org.apache.nifi.serialization.AbstractRecordSetWriter.write(AbstractRecordSetWriter.java:59) at org.apache.nifi.processors.standard.AbstractRecordProcessor$1.process(AbstractRecordProcessor.java:153) at org.apache.nifi.util.MockProcessSession.write(MockProcessSession.java:925) at org.apache.nifi.util.MockProcessSession.write(MockProcessSession.java:1) 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.util.StandardProcessorTestRunner$RunProcessor.call(StandardProcessorTestRunner.java:270) at org.apache.nifi.util.StandardProcessorTestRunner$RunProcessor.call(StandardProcessorTestRunner.java:1) 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) Caused by: java.lang.NullPointerException: null of nifi.statusEnum of union in field status of nifi.personWithNameRecord at org.apache.avro.generic.GenericDatumWriter.npe(GenericDatumWriter.java:132) at org.apache.avro.generic.GenericDatumWriter.writeWithoutConversion(GenericDatumWriter.java:126) at org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:73) at org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:60) at org.apache.avro.file.DataFileWriter.append(DataFileWriter.java:302) ... 15 more Caused by: java.lang.NullPointerException at org.apache.avro.Schema$EnumSchema.getEnumOrdinal(Schema.java:755) at org.apache.avro.generic.GenericDatumWriter.writeEnum(GenericDatumWriter.java:165) at org.apache.avro.generic.GenericDatumWriter.writeWithoutConversion(GenericDatumWriter.java:106) at org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:73) at org.apache.avro.generic.GenericDatumWriter.writeWithoutConversion(GenericDatumWriter.java:112) at org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:73) at org.apache.avro.generic.GenericDatumWriter.writeField(GenericDatumWriter.java:153) at org.apache.avro.generic.GenericDatumWriter.writeRecord(GenericDatumWriter.java:143) at org.apache.avro.generic.GenericDatumWriter.writeWithoutConversion(GenericDatumWriter.java:105) ... 18 more{noformat} > ConvertRecord cannot handle open enum in Avro > --------------------------------------------- > > Key: NIFI-7981 > URL: https://issues.apache.org/jira/browse/NIFI-7981 > Project: Apache NiFi > Issue Type: Bug > Affects Versions: 1.12.1 > Reporter: Christophe Monnet > Priority: Minor > Attachments: record_enum.xml > > > This avro schema is using the open enum pattern: > {code:json} > { > "namespace": "acme", > "name": "openEnum", > "type": "record", > "fields": [{ > "name": "personType", > "type": ["null", { > "type": "enum", > "name": "personType_enum", > "symbols": [ > "DRIVER", > "TECHNICIAN" > ] > }, "string"], > "default": null > } > ] > } > {code} > The *personType* can be either null, an enum, or any string. This brings > forward-compatibility. > Using ConvertRecord with > {"personType":"DRIVER"} > as a payload, it works. > But with > {"personType":"DUDE"} > it fails with {{java.lang.NullPointerException: null of acme.personType_enum > of union in field personType of acme.openEnum}} -- This message was sent by Atlassian Jira (v8.3.4#803005)