LayoutWizzard bei abgeschlossenen Vorgängen?

Hallo,

es kommt immer mal wieder vor, dass ein Vorgang im viewer landet, bei dem der LayoutWizzard einige Images nicht korrekt zugeschnitten hat. Der komplette Workflow wurde zu diesem Zeitpunkt schon “abgearbeitet”, es besteht also keine reguläre Möglichkeit mehr, eine Korrekturmeldung zu verschicken.

Wie muss man in solchen Fällen vorgehen, um die fehlerhaft beschnittenen Images noch zu korrigieren? Ich habe schon mehrere Vorgehensweisen ausprobiert, wirklich überzeugend war keine. Häufig bekomme ich bei den Versuchen diese oder ähnliche Fehlermeldungen:
null
java.util.concurrent.TimeoutException
at java.util.concurrent.FutureTask.get(FutureTask.java:205)
at de.intranda.olr.LayoutManager.saveImageWithTimeout(LayoutManager.java:799)
at de.intranda.olr.LayoutManager.saveImageWithTimeout(LayoutManager.java:819)
at de.intranda.olr.LayoutManager.lambda$saveSelectedImages$1(LayoutManager.java:752)
at java.lang.Thread.run(Thread.java:748)

oder:

All analysis processes must be finished before saving
de.intranda.olr.exceptions.ProcessingException: All analysis processes must be finished before saving
at de.intranda.olr.LayoutManager$1.run(LayoutManager.java:497)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

Beste Grüße,
Andreas

Bin ich wirklich der einzige mit diesem Problem? Vielleicht kann @florian.alpers etwas dazu sagen?

Hallo Andreas,

ein klares Vorgehen zum Korrigieren von einzelnen Bildern nach dem Export in den Viewer gibt es nicht. Ich würde einfach die Bilder im LayoutWizzard-Goobi-Plugin manuell Zuschneiden (Button “Dieses Bild speichern” in der “Speicheransicht”) und den Vorgang neu exportieren.

Zu den beiden Fehlern:

java.util.concurrent.TimeoutException
at java.util.concurrent.FutureTask.get(FutureTask.java:205)
at de.intranda.olr.LayoutManager.saveImageWithTimeout(LayoutManager.java:799)
at de.intranda.olr.LayoutManager.saveImageWithTimeout(LayoutManager.java:819)
at de.intranda.olr.LayoutManager.lambda$saveSelectedImages$1(LayoutManager.java:752)
at java.lang.Thread.run(Thread.java:748)

Das kommt, wenn es zu lange dauert, ein Bild zu speichern. Das kann an einer temporären Überlastung des Systems liegen, oder daran, dass das Bild zu groß ist um bearbeitet zu werden. Letzteres hatte ich aber seitdem wir die Bilder mit GraphicsMagick zuschneiden nicht mehr erlebt. Wenn der Fehler trotz mehrfachen Versuchen immer wieder kommt, müsste man aber mal schauen, was an den Bildern ist, das so lange dauert. Das kann ich aber nicht pauschal beantworten.

All analysis processes must be finished before saving
de.intranda.olr.exceptions.ProcessingException: All analysis processes must be finished before saving
at de.intranda.olr.LayoutManager$1.run(LayoutManager.java:497)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

Dieser Fehler kommt, wenn eine Bilddatei sich seit der Analyse verändert hat. Wahrscheinlich kommt das durch einen “write tiffheader” Schritt im Anschluss an den LayoutWizzard. Die einfachste Lösung wäre hier wohl, die Tiff-Header für die Master-Images schon vor dem LayoutWizzad zu schreiben.
Allerdings, solange man nur einzelne Bilder nachbearbeiten muss, kann man durch das Speichern im LayoutWizzard-Plugin wie oben beschrieben dieses Problem umgehen. Da muss man nur drauf achten, dass alle aktiven LayoutWizzard-Schritte grün markiert sind. Dann wird das zugeschnitte Bild neu erzeugt.

Schöne Grüße,
Florian