diff --git a/java/org/slub/rosetta/dps/repository/plugin/SLUBTechnicalMetadataExtractorMediaConchPlugin.java b/java/org/slub/rosetta/dps/repository/plugin/SLUBTechnicalMetadataExtractorMediaConchPlugin.java index f38963808bb089bc90bf33b4196314707eaf4a77..41964b3bb32a00692f1e91e7d0e8714dc4f5c7c6 100644 --- a/java/org/slub/rosetta/dps/repository/plugin/SLUBTechnicalMetadataExtractorMediaConchPlugin.java +++ b/java/org/slub/rosetta/dps/repository/plugin/SLUBTechnicalMetadataExtractorMediaConchPlugin.java @@ -119,13 +119,23 @@ public class SLUBTechnicalMetadataExtractorMediaConchPlugin implements MDExtract validationLog.add(line); line = reader.readLine(); } - if (p.exitValue() == 0) { - isvalid = true; - iswellformed=true; + if (p.exitValue() == 0) { // normal execution + if ( Pattern.matches("^pass!.*", validationLog.get(0)) ) { + isvalid = true; + iswellformed = true; + } else if ( Pattern.matches("^fail!.*", validationLog.get(0)) ) { + isvalid = false; + iswellformed = false; + extractionErrors = validationLog; + } else { + extractionErrors = validationLog; + System.out.println("ERROR: unexcepted mediaconch result, unable to decide if valid or invalid"); + throw new Exception("ERROR: unexcepted mediaconch result, unable to decide if valid or invalid"); + } } else { // something wrong - isvalid = false; - iswellformed = false; extractionErrors = validationLog; + System.out.println("ERROR: unexcepted mediaconch exit code: " + p.exitValue()); + throw new Exception("ERROR: unexcepted mediaconch exit code: " + p.exitValue()); } } catch (IOException e) { //log.error("exception creation socket, clamd not available at host=" + host + "port=" + port, e);