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

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


The following commit(s) were added to refs/heads/master by this push:
     new 99b20ac  NIFI-6303 CSVWriter should write schema defined fields first, 
then extra ones
99b20ac is described below

commit 99b20ac2d18c5c92a2c74a0459cd74655c41b73c
Author: Koji Kawamura <[email protected]>
AuthorDate: Wed May 22 15:42:41 2019 +0900

    NIFI-6303 CSVWriter should write schema defined fields first, then extra 
ones
    
    This closes #3484
    
    Signed-off-by: Mike Thomsen <[email protected]>
---
 .../src/main/java/org/apache/nifi/csv/WriteCSVResult.java            | 3 ++-
 .../src/test/java/org/apache/nifi/csv/TestWriteCSVResult.java        | 5 +++--
 2 files changed, 5 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/csv/WriteCSVResult.java
 
b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/csv/WriteCSVResult.java
index 849b1ca..020b7b1 100644
--- 
a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/csv/WriteCSVResult.java
+++ 
b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/csv/WriteCSVResult.java
@@ -107,8 +107,9 @@ public class WriteCSVResult extends AbstractRecordSetWriter 
implements RecordSet
         }
 
         final Set<String> allFields = new LinkedHashSet<>();
-        allFields.addAll(record.getRawFieldNames());
+        // The fields defined in the schema should be written first followed 
by extra ones.
         allFields.addAll(recordSchema.getFieldNames());
+        allFields.addAll(record.getRawFieldNames());
         fieldNames = allFields.toArray(new String[0]);
         return fieldNames;
     }
diff --git 
a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/csv/TestWriteCSVResult.java
 
b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/csv/TestWriteCSVResult.java
index d0ac6b3..a012ebb 100644
--- 
a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/csv/TestWriteCSVResult.java
+++ 
b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/csv/TestWriteCSVResult.java
@@ -158,9 +158,10 @@ public class TestWriteCSVResult {
         fields.add(new RecordField("id", 
RecordFieldType.STRING.getDataType()));
         final RecordSchema schema = new SimpleRecordSchema(fields);
 
+        // The fields defined in the schema should be written first followed 
by extra ones.
         final Map<String, Object> values = new LinkedHashMap<>();
-        values.put("id", "1");
         values.put("name", "John");
+        values.put("id", "1");
         final Record record = new MapRecord(schema, values);
 
         final ByteArrayOutputStream baos = new ByteArrayOutputStream();
@@ -286,7 +287,7 @@ public class TestWriteCSVResult {
             output = baos.toString();
         }
 
-        assertEquals("id,dob,name\n1,1/1/1970,\n", output);
+        assertEquals("id,name,dob\n1,,1/1/1970\n", output);
     }
 
 

Reply via email to