You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by ma...@apache.org on 2020/03/04 23:37:18 UTC
[nifi] branch master updated: NIFI-7055 handle empty split
evaluations, which contain only ,
This is an automated email from the ASF dual-hosted git repository.
mattyb149 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 f1c6e92 NIFI-7055 handle empty split evaluations, which contain only ,
f1c6e92 is described below
commit f1c6e92df58bf24eb5199cdcb1784cbc438946db
Author: Otto Fowler <ot...@gmail.com>
AuthorDate: Thu Jan 23 09:20:17 2020 -0500
NIFI-7055 handle empty split evaluations, which contain only ,
add explict test for " , "
updated with counting validator
Signed-off-by: Matthew Burgess <ma...@apache.org>
This closes #4012
---
.../nifi/processor/util/StandardValidators.java | 5 +++++
.../nifi/util/validator/TestStandardValidators.java | 19 +++++++++++++++++++
2 files changed, 24 insertions(+)
diff --git a/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/processor/util/StandardValidators.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/processor/util/StandardValidators.java
index 6bf9aaa..f2ca0a1 100644
--- a/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/processor/util/StandardValidators.java
+++ b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/processor/util/StandardValidators.java
@@ -575,7 +575,12 @@ public class StandardValidators {
if (input == null) {
return new ValidationResult.Builder().subject(subject).input(null).explanation("List must have at least one non-empty element").valid(false).build();
}
+
final String[] list = input.split(",");
+ if (list.length == 0) {
+ return new ValidationResult.Builder().subject(subject).input(null).explanation("List must have at least one non-empty element").valid(false).build();
+ }
+
for (String item : list) {
String itemToValidate = trimEntries ? item.trim() : item;
if (!isEmpty(itemToValidate) || !excludeEmptyEntries) {
diff --git a/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/validator/TestStandardValidators.java b/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/validator/TestStandardValidators.java
index e469955..6c6bfe9 100644
--- a/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/validator/TestStandardValidators.java
+++ b/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/validator/TestStandardValidators.java
@@ -184,6 +184,25 @@ public class TestStandardValidators {
assertFalse(vr.isValid());
assertEquals(1, mockValidator.getValidateCallCount());
+ // An empty list is the same as null, "" or " "
+ vr = val.validate("List", ",", validationContext);
+ assertFalse(vr.isValid());
+ assertEquals(0, mockValidator.getValidateCallCount());
+
+ vr = val.validate("List", " , ", validationContext);
+ assertFalse(vr.isValid());
+ assertEquals(1, mockValidator.getValidateCallCount());
+
+ // will evaluate to no entry
+ vr = val.validate("List", ",,,,", validationContext);
+ assertFalse(vr.isValid());
+ assertEquals(0, mockValidator.getValidateCallCount());
+
+ // will evaluate to an empty element
+ vr = val.validate("List", ",foo", validationContext);
+ assertFalse(vr.isValid());
+ assertEquals(1, mockValidator.getValidateCallCount());
+
vr = val.validate("List", "1", validationContext);
assertTrue(vr.isValid());
assertEquals(1, mockValidator.getValidateCallCount());