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);
}