You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by ex...@apache.org on 2023/02/18 16:29:19 UTC
[nifi] branch main updated: NIFI-11156 Updated SchemaValidator to include error message for ValidateXml
This is an automated email from the ASF dual-hosted git repository.
exceptionfactory pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/main by this push:
new 22a4bce1ed NIFI-11156 Updated SchemaValidator to include error message for ValidateXml
22a4bce1ed is described below
commit 22a4bce1ed19204c95de98b3962a045557f04226
Author: dan-s1 <ds...@gmail.com>
AuthorDate: Fri Feb 17 16:08:08 2023 +0000
NIFI-11156 Updated SchemaValidator to include error message for ValidateXml
- Restores behavior so that XML parsing failure details will be included in FlowFile error attribute from ValidateXml
This closes #6970
Signed-off-by: David Handermann <ex...@apache.org>
---
.../xml/processing/validation/StandardSchemaValidator.java | 2 +-
.../org/apache/nifi/processors/standard/TestValidateXml.java | 10 ++++++++++
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/nifi-commons/nifi-xml-processing/src/main/java/org/apache/nifi/xml/processing/validation/StandardSchemaValidator.java b/nifi-commons/nifi-xml-processing/src/main/java/org/apache/nifi/xml/processing/validation/StandardSchemaValidator.java
index 940d7f8cea..0a592c9708 100644
--- a/nifi-commons/nifi-xml-processing/src/main/java/org/apache/nifi/xml/processing/validation/StandardSchemaValidator.java
+++ b/nifi-commons/nifi-xml-processing/src/main/java/org/apache/nifi/xml/processing/validation/StandardSchemaValidator.java
@@ -53,7 +53,7 @@ public class StandardSchemaValidator implements SchemaValidator {
try {
validator.validate(source);
} catch (final SAXException|IOException e) {
- throw new ProcessingException("Validation failed", e);
+ throw new ProcessingException(String.format("Validation failed: %s", e.getMessage()), e);
}
}
}
diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestValidateXml.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestValidateXml.java
index a4a66e1287..38be007caf 100644
--- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestValidateXml.java
+++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestValidateXml.java
@@ -26,6 +26,7 @@ import java.util.HashMap;
import java.util.Map;
import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
public class TestValidateXml {
@@ -57,6 +58,7 @@ public class TestValidateXml {
runner.assertAllFlowFilesTransferred(ValidateXml.REL_INVALID, 1);
runner.assertAllFlowFilesContainAttribute(ValidateXml.REL_INVALID, ValidateXml.ERROR_ATTRIBUTE_KEY);
+ assertErrorAttributeContainsStableErrorKeyword(runner);
runner.clearTransferState();
runner.enqueue(NONCOMPLIANT_XML);
@@ -65,6 +67,12 @@ public class TestValidateXml {
runner.assertAllFlowFilesTransferred(ValidateXml.REL_INVALID, 1);
runner.assertAllFlowFilesContainAttribute(ValidateXml.REL_INVALID, ValidateXml.ERROR_ATTRIBUTE_KEY);
+ assertErrorAttributeContainsStableErrorKeyword(runner);
+ }
+
+ private void assertErrorAttributeContainsStableErrorKeyword(TestRunner runner) {
+ String errorAttribute = runner.getFlowFilesForRelationship(ValidateXml.REL_INVALID).get(0).getAttribute(ValidateXml.ERROR_ATTRIBUTE_KEY);
+ assertTrue(errorAttribute.contains("lineNumber"));
}
@Test
@@ -119,6 +127,7 @@ public class TestValidateXml {
runner.assertAllFlowFilesTransferred(ValidateXml.REL_INVALID, 1);
runner.assertAllFlowFilesContainAttribute(ValidateXml.REL_INVALID, ValidateXml.ERROR_ATTRIBUTE_KEY);
+ assertErrorAttributeContainsStableErrorKeyword(runner);
runner.clearTransferState();
attributes.clear();
@@ -129,6 +138,7 @@ public class TestValidateXml {
runner.assertAllFlowFilesTransferred(ValidateXml.REL_INVALID, 1);
runner.assertAllFlowFilesContainAttribute(ValidateXml.REL_INVALID, ValidateXml.ERROR_ATTRIBUTE_KEY);
+ assertErrorAttributeContainsStableErrorKeyword(runner);
}
@Test