From 68af5a9a700cf6228bb76e206ee30f72b0d8265a Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Wed, 4 Jan 2017 20:19:21 +0100 Subject: [PATCH] query report message counter to fix wrong exit message for single file validation // fixes #740 --- .../com/adobe/epubcheck/tool/EpubChecker.java | 31 ++++++++++++++----- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/adobe/epubcheck/tool/EpubChecker.java b/src/main/java/com/adobe/epubcheck/tool/EpubChecker.java index 4fde0d3ad..fa0c73687 100644 --- a/src/main/java/com/adobe/epubcheck/tool/EpubChecker.java +++ b/src/main/java/com/adobe/epubcheck/tool/EpubChecker.java @@ -181,14 +181,23 @@ else if (validationResult == 1) } else { - if (check.validate()) + boolean validationResult = check.validate(); + if (validationResult) { outWriter.println(Messages.get("no_errors__or_warnings")); return 0; } - System.err.println(Messages.get("there_were_errors")); + else if (report.getWarningCount() > 0 && report.getFatalErrorCount() == 0 && report.getErrorCount() == 0) + { + System.err.println(Messages.get("there_were_warnings")); + return failOnWarnings ? 1 : 0; + } + else + { + System.err.println(Messages.get("there_were_errors")); + return 1; + } } - return 1; } int validateEpubFile(String path, EPUBVersion version, Report report) @@ -231,14 +240,22 @@ int validateEpubFile(String path, EPUBVersion version, Report report) .report(report).resourceProvider(resourceProvider).mimetype(modeMimeTypeMap.get(opsType)) .version(version).profile(profile).build()); - if (check.validate()) + boolean validationResult = check.validate(); + if (validationResult) { outWriter.println(Messages.get("no_errors__or_warnings")); return 0; } - System.err.println(Messages.get("there_were_errors")); - - return 1; + else if (report.getWarningCount() > 0 && report.getFatalErrorCount() == 0 && report.getErrorCount() == 0) + { + System.err.println(Messages.get("there_were_warnings")); + return failOnWarnings ? 1 : 0; + } + else + { + System.err.println(Messages.get("there_were_errors")); + return 1; + } } public int run(String[] args)