diff --git a/src/etc/testcases/taskdefs/optional/schemavalidate.xml b/src/etc/testcases/taskdefs/optional/schemavalidate.xml index 13cbb921c..2e8fc8461 100644 --- a/src/etc/testcases/taskdefs/optional/schemavalidate.xml +++ b/src/etc/testcases/taskdefs/optional/schemavalidate.xml @@ -69,6 +69,15 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/XMLValidateTask.java b/src/main/org/apache/tools/ant/taskdefs/optional/XMLValidateTask.java index fd70471b9..0002f709d 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/XMLValidateTask.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/XMLValidateTask.java @@ -285,7 +285,7 @@ public class XMLValidateTask extends Task { "Specify at least one source - " + "a file or a fileset."); } - initValidator(); + if (file != null) { if (file.exists() && file.canRead() && file.isFile()) { @@ -518,7 +518,10 @@ public class XMLValidateTask extends Task { /** * parse the file */ - protected void doValidate(File afile) { + protected boolean doValidate(File afile) { + //for every file, we have a new instance of the validator + initValidator(); + try { log("Validating " + afile.getName() + "... ", Project.MSG_VERBOSE); errorHandler.init(afile); @@ -526,6 +529,7 @@ public class XMLValidateTask extends Task { String uri = FILE_UTILS.toURI(afile.getAbsolutePath()); is.setSystemId(uri); xmlReader.parse(is); + return true; } catch (SAXException ex) { log("Caught when validating: " + ex.toString(), Project.MSG_DEBUG); if (failOnError) { @@ -548,6 +552,8 @@ public class XMLValidateTask extends Task { log(afile + " is not a valid XML document", Project.MSG_ERR); } } + //if we got here. it was as a result of a caught and logged exception. + return false; } /** diff --git a/src/testcases/org/apache/tools/ant/taskdefs/optional/SchemaValidateTest.java b/src/testcases/org/apache/tools/ant/taskdefs/optional/SchemaValidateTest.java index 7b4f64a13..e763a9dec 100644 --- a/src/testcases/org/apache/tools/ant/taskdefs/optional/SchemaValidateTest.java +++ b/src/testcases/org/apache/tools/ant/taskdefs/optional/SchemaValidateTest.java @@ -92,4 +92,7 @@ public class SchemaValidateTest extends BuildFileTest { executeTarget("testEqualsSchemasOK"); } + public void testFileset() throws Exception { + executeTarget("testFileset"); + } }