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

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

commit e6dfea6352f5ffabbbcafde10745c4fc59a64fc1
Author: sopan98 <phaltankarso...@gmail.com>
AuthorDate: Mon Nov 28 21:35:44 2022 -0600

    NIFI-10890 Replaced HashMap with LinkedHashMap in JsonRowRecordReader
    
    - Updated unit test based on deterministic behavior of LinkedHashMap
    
    This closes #6726
    
    Signed-off-by: David Handermann <exceptionfact...@apache.org>
---
 .../java/org/apache/nifi/json/AbstractJsonRowRecordReader.java    | 8 ++++----
 .../java/org/apache/nifi/json/TestJsonTreeRowRecordReader.java    | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git 
a/nifi-nar-bundles/nifi-extension-utils/nifi-record-utils/nifi-json-record-utils/src/main/java/org/apache/nifi/json/AbstractJsonRowRecordReader.java
 
b/nifi-nar-bundles/nifi-extension-utils/nifi-record-utils/nifi-json-record-utils/src/main/java/org/apache/nifi/json/AbstractJsonRowRecordReader.java
index b024beed6c..59f12770e9 100644
--- 
a/nifi-nar-bundles/nifi-extension-utils/nifi-record-utils/nifi-json-record-utils/src/main/java/org/apache/nifi/json/AbstractJsonRowRecordReader.java
+++ 
b/nifi-nar-bundles/nifi-extension-utils/nifi-record-utils/nifi-json-record-utils/src/main/java/org/apache/nifi/json/AbstractJsonRowRecordReader.java
@@ -43,8 +43,8 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.text.DateFormat;
 import java.util.Collections;
-import java.util.HashMap;
 import java.util.Iterator;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.function.BiPredicate;
@@ -119,7 +119,7 @@ public abstract class AbstractJsonRowRecordReader 
implements RecordReader {
 
         this.strategy = strategy;
         this.captureFieldPredicate = captureFieldPredicate;
-        capturedFields = new HashMap<>();
+        capturedFields = new LinkedHashMap<>();
 
         try {
             jsonParser = jsonFactory.createParser(in);
@@ -306,7 +306,7 @@ public abstract class AbstractJsonRowRecordReader 
implements RecordReader {
         final MapDataType mapDataType = (MapDataType) dataType;
         final DataType valueType = mapDataType.getValueType();
 
-        final Map<String, Object> mapValue = new HashMap<>();
+        final Map<String, Object> mapValue = new LinkedHashMap<>();
 
         final Iterator<Map.Entry<String, JsonNode>> fieldItr = 
fieldNode.fields();
         while (fieldItr.hasNext()) {
@@ -372,7 +372,7 @@ public abstract class AbstractJsonRowRecordReader 
implements RecordReader {
 
     private Record createRecordFromRawValue(final JsonNode fieldNode, final 
RecordSchema childSchema) throws IOException {
         final Iterator<String> fieldNames = fieldNode.fieldNames();
-        final Map<String, Object> childValues = new HashMap<>();
+        final Map<String, Object> childValues = new LinkedHashMap<>();
         while (fieldNames.hasNext()) {
             final String childFieldName = fieldNames.next();
 
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/TestJsonTreeRowRecordReader.java
 
b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/json/TestJsonTreeRowRecordReader.java
index e8b0b6c48c..1f77aa6318 100644
--- 
a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/json/TestJsonTreeRowRecordReader.java
+++ 
b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/json/TestJsonTreeRowRecordReader.java
@@ -423,7 +423,7 @@ class TestJsonTreeRowRecordReader {
         fields.add(new RecordField("id", RecordFieldType.INT.getDataType()));
         final RecordSchema schema = new SimpleRecordSchema(fields);
 
-        final String expectedMap = "{id=1, name=John Doe, address=123 My 
Street, city=My City, state=MS, zipCode=11111, country=USA, 
account=MapRecord[{balance=4750.89, id=42}]}";
+        final String expectedMap = "{id=1, name=John Doe, address=123 My 
Street, city=My City, state=MS, zipCode=11111, country=USA, 
account=MapRecord[{id=42, balance=4750.89}]}";
         final String expectedRecord = String.format("MapRecord[%s]", 
expectedMap);
         try (final InputStream in = new 
FileInputStream("src/test/resources/json/single-element-nested.json");
              final JsonTreeRowRecordReader reader = new 
JsonTreeRowRecordReader(in, mock(ComponentLog.class), schema, dateFormat, 
timeFormat, timestampFormat)) {

Reply via email to