Repository: nifi
Updated Branches:
  refs/heads/master e9848f427 -> 382eef218


NIFI-3879: Allow null Avro default values

- Avro uses their own class for null values, so a standard check against
  null isn't picking them up.

This closes #1792.


Project: http://git-wip-us.apache.org/repos/asf/nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/382eef21
Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/382eef21
Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/382eef21

Branch: refs/heads/master
Commit: 382eef2183192357c3823c207f1835711f57688c
Parents: e9848f4
Author: Steve Champagne <[email protected]>
Authored: Fri May 12 17:32:14 2017 +0000
Committer: Mark Payne <[email protected]>
Committed: Fri May 12 14:58:43 2017 -0400

----------------------------------------------------------------------
 .../src/main/java/org/apache/nifi/avro/AvroTypeUtil.java      | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/nifi/blob/382eef21/nifi-nar-bundles/nifi-extension-utils/nifi-record-utils/nifi-avro-record-utils/src/main/java/org/apache/nifi/avro/AvroTypeUtil.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-extension-utils/nifi-record-utils/nifi-avro-record-utils/src/main/java/org/apache/nifi/avro/AvroTypeUtil.java
 
b/nifi-nar-bundles/nifi-extension-utils/nifi-record-utils/nifi-avro-record-utils/src/main/java/org/apache/nifi/avro/AvroTypeUtil.java
index bd5e8e4..8ded9bc 100644
--- 
a/nifi-nar-bundles/nifi-extension-utils/nifi-record-utils/nifi-avro-record-utils/src/main/java/org/apache/nifi/avro/AvroTypeUtil.java
+++ 
b/nifi-nar-bundles/nifi-extension-utils/nifi-record-utils/nifi-avro-record-utils/src/main/java/org/apache/nifi/avro/AvroTypeUtil.java
@@ -25,6 +25,7 @@ import org.apache.avro.generic.GenericData;
 import org.apache.avro.generic.GenericFixed;
 import org.apache.avro.generic.GenericRecord;
 import org.apache.avro.util.Utf8;
+import org.apache.avro.JsonProperties;
 import org.apache.nifi.schema.access.SchemaNotFoundException;
 import org.apache.nifi.serialization.SimpleRecordSchema;
 import org.apache.nifi.serialization.record.DataType;
@@ -205,7 +206,11 @@ public class AvroTypeUtil {
             final String fieldName = field.name();
             final DataType dataType = 
AvroTypeUtil.determineDataType(field.schema());
 
-            recordFields.add(new RecordField(fieldName, dataType, 
field.defaultVal(), field.aliases()));
+            if (field.defaultVal() == JsonProperties.NULL_VALUE) {
+               recordFields.add(new RecordField(fieldName, dataType, 
field.aliases()));
+            } else {
+               recordFields.add(new RecordField(fieldName, dataType, 
field.defaultVal(), field.aliases()));
+            }
         }
 
         final RecordSchema recordSchema = new SimpleRecordSchema(recordFields, 
schemaText, AVRO_SCHEMA_FORMAT, schemaId);

Reply via email to