Prüfung auf mehrfach identische FileIDs #6087
henning-gerhardt
started this conversation in
General
Replies: 1 comment 4 replies
-
Wäre die Einführung eines optionalen "strict"-Mode evtl eine Option? Dann könnten Institutionen, bei denen die Prüfung zu erheblichen Problemen führt, den Duplikate-Check über die Kitodo-Konfiguration deaktivieren. |
Beta Was this translation helpful? Give feedback.
4 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Während der Umstellung des Testframeworks Junit von der Version 4 auf die Version 5 ist aufgefallen, dass ein Test im Module "Kitodo-DataFormat sich anders verhält als erwartet.
Dieser Test soll prüfen, ob die genutzten FileIDs in der internen METS/Kitodo Datei im Dokument einmalig vergeben sind. Aufgrund des Aufbau des bestehenden Tests wurde nur dann ein Fehler im Test erkannt, wenn eine Exception erzeugt wurde. Der Test lief allerdings auch dann erfolgreich durch, wenn überhaupt keine Exception erzeugt wurde. Dies liegt grundsätzlich im Aufbau des geschriebenen Tests, wobei nach der Umstellung auf Junit5 explizit auf die den nicht betrachteten Fall (keine Exception wird erzeugt) vom Test-Framework hingewiesen wird.
Die einfache Lösung wäre das Entfernen des Testes. Da die Prüfung auf Mehrfach-Nutzung der FileIDs jedoch wichtig ist und eben auch nach METS-Standard gar nicht erlaubt ist , muss eine Anpassung stattfinden. Eine mögliche Reparatur der Prüfung ist entwickelt und der Test verhält sich mit dieser Änderung sowohl mit Junit 4 als auch mit Junit 5 entsprechend korrekt:
Mit der Reparatur der Prüfung ergibt sich aber eine Änderung, die in der regulären Nutzung der Anwendung nur eine (hoffentlich) geringe Auswirkung haben sollte. Jedoch ist es nicht auszuschließen, dass es in der Nutzung von Kitodo.Production zur Mehrfachnutzung von FileIDs gekommen sein kann. Wahrscheinlicher ist der Fall, dass interne METS-Dateien manuell manipuliert wurden, was zu Zeiten von 2.x von manchen Einrichtungen durchaus gemacht wurde. Wenn an der Stelle der Nutzung / Manipulation der FileIDs unsauber gearbeitet wurde und es zu Dubletten / Mehrfach-Nutzungen der gleichen FileID gekommen ist.
Wenn die Änderung der Prüfung in den Code gelangt wird dieser Fehler beim Zugriff auf die interne METS-Datei in der Anwendung angezeigt. Eine Reparatur kann vermutlich nur von außerhalb durch direkte Manipulation der METS Datei stattfinden und / oder nur durch Entfernung der Datei-Referenzierungen über einen "komplizierten" Austausch der Bild- und Bild-Derivate-Dateien geschehen (Verschiebung der Bild- und Bildderivat-Dateien, Öffnen des Vorgangs im Metadaten-Editor und Aktualisierung (Leerung) der Datei-Referenzierungen, Speichern des Vorgangs und Schließen des Metadaten-Editors, Rück-Verschieben der Bild- und Bildderivat-Dateien, Neu-Öffnen des Metadaten-Editors und Neu-Referenzierung der Dateien).
Kann dieser Weg der Reparatur der Funktionalität gegangen werden, auch wenn nicht klar benannt werden kann, wie oft bzw. wie hoch dieser Fehlerfall nun auftreten wird?
Ziel ist es, dass die Umstellung von Junit4 auf Junit5 in kurzen zeitlichen Rahmen durchgeführt wird und ggf. weitere Verbesserungen, die durch diesen aufgefallenen Kontext sichtbar geworden sind, in späteren Pull Requests in die Software selbst einfließen zu lassen. Es soll auch in dem Pull Request nur die Änderungen enthalten sein, die zwingend notwendig sind, so dass die Komplexität des Code Reviews nicht unnötig erhöht wird.
Beta Was this translation helpful? Give feedback.
All reactions