From 1583620e27013fcd09a90322a431e66be04e6713 Mon Sep 17 00:00:00 2001 From: Pierre Villard Date: Tue, 7 Mar 2017 19:48:00 +0100 Subject: [PATCH] NIFI-3556 - ValidateCSV - fixed schema parsing when ending by Null operator --- .../org/apache/nifi/processors/standard/ValidateCsv.java | 4 +++- .../apache/nifi/processors/standard/TestValidateCsv.java | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) 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 44bb35d3a4b4..43d3ef990ded 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 @@ -250,15 +250,17 @@ private void parseSchema(String schema) { private String setProcessor(String remaining, List processorsList) { StringBuffer buffer = new StringBuffer(); + String inputString = remaining; int i = 0; int opening = 0; int closing = 0; - while(buffer.length() != remaining.length()) { + while(buffer.length() != inputString.length()) { char c = remaining.charAt(i); i++; if(opening == 0 && c == ',') { if(i == 1) { + inputString = inputString.substring(1); continue; } break; 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 09a83f2aff67..c2d4d3f0140c 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 @@ -271,4 +271,11 @@ public void testValidate() { runner.assertNotValid(); } + @Test + public void testParseSchemaCommaBoundary() { + final TestRunner runner = TestRunners.newTestRunner(new ValidateCsv()); + runner.setProperty(ValidateCsv.SCHEMA, "Null(),Null"); + runner.assertValid(); + } + }