From a0bd05e3986337f653aa4604c7033a60b196bfe6 Mon Sep 17 00:00:00 2001
From: Jens Steidl <Jens.Steidl@slub-dresden.de>
Date: Wed, 17 Jul 2019 15:32:32 +0200
Subject: [PATCH] - fix for result interpretation

---
 ...icalMetadataExtractorMediaConchPlugin.java | 20 ++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/java/org/slub/rosetta/dps/repository/plugin/SLUBTechnicalMetadataExtractorMediaConchPlugin.java b/java/org/slub/rosetta/dps/repository/plugin/SLUBTechnicalMetadataExtractorMediaConchPlugin.java
index f389638..41964b3 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);
-- 
GitLab