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

Reply via email to