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>