This is an automated email from the ASF dual-hosted git repository.

exceptionfactory pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/main by this push:
     new 07b5f269fd NIFI-14917 Upgraded Avro from 1.11.4 to 1.12.0 (#10251)
07b5f269fd is described below

commit 07b5f269fdceca40f17d42cdf8936c7666abc215
Author: Pierre Villard <[email protected]>
AuthorDate: Fri Sep 5 20:29:18 2025 +0200

    NIFI-14917 Upgraded Avro from 1.11.4 to 1.12.0 (#10251)
    
    Signed-off-by: David Handermann <[email protected]>
---
 .../apache/nifi/processors/parquet/ConvertAvroToParquet.java   |  3 ++-
 .../nifi/schemaregistry/services/AvroSchemaRegistry.java       | 10 ++++++++--
 .../test/java/org/apache/nifi/avro/TestWriteAvroResult.java    |  3 +--
 pom.xml                                                        |  2 +-
 4 files changed, 12 insertions(+), 6 deletions(-)

diff --git 
a/nifi-extension-bundles/nifi-parquet-bundle/nifi-parquet-processors/src/main/java/org/apache/nifi/processors/parquet/ConvertAvroToParquet.java
 
b/nifi-extension-bundles/nifi-parquet-bundle/nifi-parquet-processors/src/main/java/org/apache/nifi/processors/parquet/ConvertAvroToParquet.java
index d007796173..853c0be918 100644
--- 
a/nifi-extension-bundles/nifi-parquet-bundle/nifi-parquet-processors/src/main/java/org/apache/nifi/processors/parquet/ConvertAvroToParquet.java
+++ 
b/nifi-extension-bundles/nifi-parquet-bundle/nifi-parquet-processors/src/main/java/org/apache/nifi/processors/parquet/ConvertAvroToParquet.java
@@ -20,6 +20,7 @@ package org.apache.nifi.processors.parquet;
 
 
 import org.apache.avro.Schema;
+import org.apache.avro.SchemaFormatter;
 import org.apache.avro.file.DataFileStream;
 import org.apache.avro.generic.GenericDatumReader;
 import org.apache.avro.generic.GenericRecord;
@@ -133,7 +134,7 @@ public class ConvertAvroToParquet extends AbstractProcessor 
{
                      final DataFileStream<GenericRecord> dataFileReader = new 
DataFileStream<>(in, new GenericDatumReader<>())) {
 
                     Schema avroSchema = dataFileReader.getSchema();
-                    getLogger().debug(avroSchema.toString(true));
+                    getLogger().debug(SchemaFormatter.format("json/pretty", 
avroSchema));
                     ParquetWriter<GenericRecord> writer = 
createParquetWriter(context, flowFile, rawOut, avroSchema );
 
                     try {
diff --git 
a/nifi-extension-bundles/nifi-registry-bundle/nifi-registry-service/src/main/java/org/apache/nifi/schemaregistry/services/AvroSchemaRegistry.java
 
b/nifi-extension-bundles/nifi-registry-bundle/nifi-registry-service/src/main/java/org/apache/nifi/schemaregistry/services/AvroSchemaRegistry.java
index 1a951e70b6..79cc9f4b45 100644
--- 
a/nifi-extension-bundles/nifi-registry-bundle/nifi-registry-service/src/main/java/org/apache/nifi/schemaregistry/services/AvroSchemaRegistry.java
+++ 
b/nifi-extension-bundles/nifi-registry-bundle/nifi-registry-service/src/main/java/org/apache/nifi/schemaregistry/services/AvroSchemaRegistry.java
@@ -16,6 +16,7 @@
  */
 package org.apache.nifi.schemaregistry.services;
 
+import org.apache.avro.NameValidator;
 import org.apache.avro.Schema;
 import org.apache.nifi.annotation.behavior.DynamicProperty;
 import org.apache.nifi.annotation.documentation.CapabilityDescription;
@@ -76,7 +77,9 @@ public class AvroSchemaRegistry extends 
AbstractControllerService implements Sch
             } else {
                 try {
                     // Use a non-strict parser here, a strict parse can be 
done (if specified) in customValidate().
-                    final Schema avroSchema = new 
Schema.Parser().setValidate(false).parse(newValue);
+                    final Schema avroSchema = new 
Schema.Parser(NameValidator.NO_VALIDATION)
+                            .setValidateDefaults(false)
+                            .parse(newValue);
                     final SchemaIdentifier schemaId = 
SchemaIdentifier.builder().name(descriptor.getName()).build();
                     final RecordSchema recordSchema = 
AvroTypeUtil.createSchema(avroSchema, newValue, schemaId);
                     recordSchemas.put(descriptor.getName(), recordSchema);
@@ -98,7 +101,10 @@ public class AvroSchemaRegistry extends 
AbstractControllerService implements Sch
             String input = entry.getValue();
 
             try {
-                final Schema avroSchema = new 
Schema.Parser().setValidate(strict).parse(input);
+                final Schema.Parser parser = strict
+                        ? new 
Schema.Parser(NameValidator.STRICT_VALIDATOR).setValidateDefaults(true)
+                        : new 
Schema.Parser(NameValidator.NO_VALIDATION).setValidateDefaults(false);
+                final Schema avroSchema = parser.parse(input);
                 AvroTypeUtil.createSchema(avroSchema, input, 
SchemaIdentifier.EMPTY);
             } catch (final Exception e) {
                 results.add(new ValidationResult.Builder()
diff --git 
a/nifi-extension-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/avro/TestWriteAvroResult.java
 
b/nifi-extension-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/avro/TestWriteAvroResult.java
index 59dfca7341..1701476c99 100644
--- 
a/nifi-extension-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/avro/TestWriteAvroResult.java
+++ 
b/nifi-extension-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/avro/TestWriteAvroResult.java
@@ -23,7 +23,6 @@ import org.apache.avro.Schema;
 import org.apache.avro.file.CodecFactory;
 import org.apache.avro.file.DataFileStream;
 import org.apache.avro.generic.GenericArray;
-import org.apache.avro.generic.GenericData.Array;
 import org.apache.avro.generic.GenericDatumReader;
 import org.apache.avro.generic.GenericFixed;
 import org.apache.avro.generic.GenericRecord;
@@ -459,7 +458,7 @@ public abstract class TestWriteAvroResult {
                     assertEquals(o, bb.get());
                 }
             } else if (recordValue instanceof Object[]) {
-                assertInstanceOf(Array.class, avroValue, fieldName + " should 
have been instanceof Array");
+                assertInstanceOf(GenericArray.class, avroValue, fieldName + " 
should have been instanceof GenericArray");
                 final GenericArray<?> avroArray = (GenericArray<?>) avroValue;
                 final Object[] recordArray = (Object[]) recordValue;
                 assertEquals(recordArray.length, avroArray.size(),
diff --git a/pom.xml b/pom.xml
index bdc9bb4c12..4f6aa8b8c1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -139,7 +139,7 @@
         <jetty.version>12.0.25</jetty.version>
         <jackson.bom.version>2.20.0</jackson.bom.version>
         <jackson.annotations.version>2.20</jackson.annotations.version>
-        <avro.version>1.11.4</avro.version>
+        <avro.version>1.12.0</avro.version>
         <jaxb.runtime.version>4.0.5</jaxb.runtime.version>
         <javax.annotation-api.version>1.3.2</javax.annotation-api.version>
         <jakarta.xml.bind-api.version>4.0.2</jakarta.xml.bind-api.version>

Reply via email to