You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by pv...@apache.org on 2016/12/15 22:01:30 UTC
nifi git commit: NIFI-3175 Fix a bug in the ValidateCSV processor to
handle empty CSV columns
Repository: nifi
Updated Branches:
refs/heads/master ab2d07aa5 -> 9a5986b0f
NIFI-3175 Fix a bug in the ValidateCSV processor to handle empty CSV columns
This closes #1311.
Project: http://git-wip-us.apache.org/repos/asf/nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/9a5986b0
Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/9a5986b0
Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/9a5986b0
Branch: refs/heads/master
Commit: 9a5986b0f6f1e44d04be5569206ca1992759073a
Parents: ab2d07a
Author: Wesley-Lawrence <we...@gmail.com>
Authored: Thu Dec 8 19:32:54 2016 -0500
Committer: Pierre Villard <pi...@gmail.com>
Committed: Thu Dec 15 22:43:15 2016 +0100
----------------------------------------------------------------------
.../nifi/processors/standard/ValidateCsv.java | 11 ++++++++---
.../processors/standard/TestValidateCsv.java | 19 +++++++++++++++++++
2 files changed, 27 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/nifi/blob/9a5986b0/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ValidateCsv.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ValidateCsv.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ValidateCsv.java
index 4788080..44bb35d 100644
--- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ValidateCsv.java
+++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ValidateCsv.java
@@ -580,11 +580,16 @@ public class ValidateCsv extends AbstractProcessor {
}
final int size = list.size();
- for(int i = 0; i < size; i++) {
- buffer.append(list.get(i).toString());
- if(i != size - 1) {
+ int i = 0;
+ for (Object item : list) {
+ if (item != null) {
+ buffer.append(item.toString());
+ }
+
+ if (i < size - 1) {
buffer.append((char) csvPref.getDelimiterChar());
}
+ i++;
}
return buffer.toString().getBytes();
http://git-wip-us.apache.org/repos/asf/nifi/blob/9a5986b0/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestValidateCsv.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestValidateCsv.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestValidateCsv.java
index d3c6493..09a83f2 100644
--- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestValidateCsv.java
+++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestValidateCsv.java
@@ -61,6 +61,25 @@ public class TestValidateCsv {
}
@Test
+ public void testNullValues() {
+ final TestRunner runner = TestRunners.newTestRunner(new ValidateCsv());
+ runner.setProperty(ValidateCsv.DELIMITER_CHARACTER, ",");
+ runner.setProperty(ValidateCsv.END_OF_LINE_CHARACTER, "\n");
+ runner.setProperty(ValidateCsv.QUOTE_CHARACTER, "\"");
+ runner.setProperty(ValidateCsv.HEADER, "true");
+ runner.setProperty(ValidateCsv.VALIDATION_STRATEGY, ValidateCsv.VALIDATE_LINES_INDIVIDUALLY);
+
+ runner.setProperty(ValidateCsv.SCHEMA, "Null, Null, Null");
+
+ runner.enqueue("#Name,Birthdate,Weight\nJohn,\"\",63.2\nBob,,45.0");
+ runner.run();
+
+ runner.assertTransferCount(ValidateCsv.REL_VALID, 1);
+ runner.getFlowFilesForRelationship(ValidateCsv.REL_VALID).get(0).assertContentEquals("#Name,Birthdate,Weight\nJohn,,63.2\nBob,,45.0");
+ runner.assertTransferCount(ValidateCsv.REL_INVALID, 0);
+ }
+
+ @Test
public void testUniqueWithSplit() {
final TestRunner runner = TestRunners.newTestRunner(new ValidateCsv());
runner.setProperty(ValidateCsv.DELIMITER_CHARACTER, ",");