From 01cd8e8ea2f81d96e6f985e0f840ec5eb9cd1583 Mon Sep 17 00:00:00 2001 From: Andreas Romeyke <andreas.romeyke@slub-dresden.de> Date: Tue, 1 Aug 2023 17:22:14 +0200 Subject: [PATCH] - added truncated getErrors() to workaround Rosetta Issue https://support.proquest.com/500Do0000083LJkIAM, - closes https://git.slub-dresden.de/digital-preservation/mediaconch_plugin4rosetta/-/issues/8 --- ...a_SLUBMatroskaFFV1FormatValidationPlugin.xml | 2 +- .../SLUBMatroskaFFV1FormatValidationPlugin.java | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/PLUGIN-INF/metadata_SLUBMatroskaFFV1FormatValidationPlugin.xml b/PLUGIN-INF/metadata_SLUBMatroskaFFV1FormatValidationPlugin.xml index 90bf482..88f5b67 100644 --- a/PLUGIN-INF/metadata_SLUBMatroskaFFV1FormatValidationPlugin.xml +++ b/PLUGIN-INF/metadata_SLUBMatroskaFFV1FormatValidationPlugin.xml @@ -49,7 +49,7 @@ </pl:initParameters> <pl:description>SLUB Matroska/FFV1 validation Plugin, using MediaConch to validate FFV1/Matroska-files</pl:description> - <pl:version>1.0</pl:version> + <pl:version>1.1</pl:version> <pl:materialType>DIGITAL</pl:materialType> <pl:module>Preservation</pl:module> <pl:generalType>TASK</pl:generalType> diff --git a/java/org/slub/rosetta/dps/repository/plugin/SLUBMatroskaFFV1FormatValidationPlugin.java b/java/org/slub/rosetta/dps/repository/plugin/SLUBMatroskaFFV1FormatValidationPlugin.java index c44522a..41ef3f9 100644 --- a/java/org/slub/rosetta/dps/repository/plugin/SLUBMatroskaFFV1FormatValidationPlugin.java +++ b/java/org/slub/rosetta/dps/repository/plugin/SLUBMatroskaFFV1FormatValidationPlugin.java @@ -199,7 +199,22 @@ public class SLUBMatroskaFFV1FormatValidationPlugin implements FormatValidationP @Override public final List<String> getErrors() { - return List.copyOf(this.validationLog); + List<String> truncated = new ArrayList<String>(); + int chars=0; + /* workaround for Rosetta Issue https://support.proquest.com/500Do0000083LJkIAM + * truncate to ensure not more than 2000 chars used, to + */ + for (String e: validationLog) { + if ( (chars+ e.length()) < 1900 ) { + truncated.add( e ); + chars+=e.length()+1; // +1 for line ending + } else { + truncated.add ("... (the full error is truncated, because Rosetta limits, see Rosetta log for detailed output)"); + log.info("truncated errors in getError"); + break; + } + } + return truncated; } @Override -- GitLab