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

joewitt pushed a commit to branch support/nifi-1.11.x
in repository https://gitbox.apache.org/repos/asf/nifi.git

commit 1fed41641b52a451d545637a0c16692d3e6a112e
Author: Zoltan Kornel Torok <[email protected]>
AuthorDate: Fri Feb 21 16:13:40 2020 +0100

    NIFI-7178 - Handle the case when schema is not available
    
    Signed-off-by: Pierre Villard <[email protected]>
    
    This closes #4067.
---
 .../src/main/java/org/apache/nifi/json/JsonPathRowRecordReader.java   | 4 ++--
 .../test/java/org/apache/nifi/json/TestJsonPathRowRecordReader.java   | 4 ++++
 .../src/test/resources/json/timestamp.json                            | 2 +-
 3 files changed, 7 insertions(+), 3 deletions(-)

diff --git 
a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/JsonPathRowRecordReader.java
 
b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/JsonPathRowRecordReader.java
index c977cfd..74308f4 100644
--- 
a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/JsonPathRowRecordReader.java
+++ 
b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/JsonPathRowRecordReader.java
@@ -180,7 +180,7 @@ public class JsonPathRowRecordReader extends 
AbstractJsonRowRecordReader {
             return new MapRecord(childSchema, values);
         }
 
-        if (value instanceof String) {
+        if (dataType != null && value instanceof String) {
             switch (dataType.getFieldType()) {
                 case DATE:
                 case TIME:
@@ -243,4 +243,4 @@ public class JsonPathRowRecordReader extends 
AbstractJsonRowRecordReader {
         }
     }
 
-}
\ No newline at end of file
+}
diff --git 
a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/json/TestJsonPathRowRecordReader.java
 
b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/json/TestJsonPathRowRecordReader.java
index d97017c..0b16c38 100644
--- 
a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/json/TestJsonPathRowRecordReader.java
+++ 
b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/json/TestJsonPathRowRecordReader.java
@@ -174,6 +174,7 @@ public class TestJsonPathRowRecordReader {
 
         final LinkedHashMap<String, JsonPath> jsonPaths = new 
LinkedHashMap<>();
         jsonPaths.put("timestamp", JsonPath.compile("$.timestamp"));
+        jsonPaths.put("field_not_in_schema", 
JsonPath.compile("$.field_not_in_schema"));
 
         for (final boolean coerceTypes : new boolean[] {true, false}) {
             try (final InputStream in = new FileInputStream(new 
File("src/test/resources/json/timestamp.json"));
@@ -182,6 +183,9 @@ public class TestJsonPathRowRecordReader {
                 final Record record = reader.nextRecord(coerceTypes, false);
                 final Object value = record.getValue("timestamp");
                 assertTrue("With coerceTypes set to " + coerceTypes + ", value 
is not a Timestamp", value instanceof java.sql.Timestamp);
+
+                final Object valueNotInSchema = 
record.getValue("field_not_in_schema");
+                assertTrue("field_not_in_schema should be String", 
valueNotInSchema instanceof String);
             }
         }
     }
diff --git 
a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/resources/json/timestamp.json
 
b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/resources/json/timestamp.json
index ee5d90f..2a06403 100644
--- 
a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/resources/json/timestamp.json
+++ 
b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/resources/json/timestamp.json
@@ -1 +1 @@
-{"timestamp": "2019/06/27 13:04:04"}
\ No newline at end of file
+{"timestamp": "2019/06/27 13:04:04", "field_not_in_schema" :  "some_value"}
\ No newline at end of file

Reply via email to