This is an automated email from the ASF dual-hosted git repository.
exceptionfactory pushed a commit to branch support/nifi-1.x
in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/support/nifi-1.x by this push:
new 2ace153a7d NIFI-11156 Updated SchemaValidator to include error message
for ValidateXml
2ace153a7d is described below
commit 2ace153a7dd04a7b0b3cdb09159adab4246a8fc6
Author: dan-s1 <[email protected]>
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 <[email protected]>
---
.../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