Fix #55: Mutable Felder in PdfPreviewPane als volatile deklarieren
Die Felder currentDocument, currentRenderer, currentSourceFile, currentPage und totalPages werden vom Worker-Thread geschrieben und vom JavaFX Application Thread gelesen. Das volatile-Keyword garantiert nun die Sichtbarkeit zwischen den Threads gemaess Java Memory Model. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
+5
-5
@@ -112,22 +112,22 @@ public final class PdfPreviewPane {
|
|||||||
* Aktuell geöffnetes PDF-Dokument. Zugriff ausschließlich vom Worker-Thread.
|
* Aktuell geöffnetes PDF-Dokument. Zugriff ausschließlich vom Worker-Thread.
|
||||||
* {@code null} wenn kein Dokument geöffnet ist.
|
* {@code null} wenn kein Dokument geöffnet ist.
|
||||||
*/
|
*/
|
||||||
private PDDocument currentDocument = null;
|
private volatile PDDocument currentDocument = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Renderer für das aktuell geöffnete Dokument. Zugriff ausschließlich vom Worker-Thread.
|
* Renderer für das aktuell geöffnete Dokument. Zugriff ausschließlich vom Worker-Thread.
|
||||||
* {@code null} wenn kein Dokument geöffnet ist.
|
* {@code null} wenn kein Dokument geöffnet ist.
|
||||||
*/
|
*/
|
||||||
private PDFRenderer currentRenderer = null;
|
private volatile PDFRenderer currentRenderer = null;
|
||||||
|
|
||||||
/** Aktuell geladene Quelldatei; null wenn keine Selektion vorliegt. */
|
/** Aktuell geladene Quelldatei; null wenn keine Selektion vorliegt. */
|
||||||
private Path currentSourceFile = null;
|
private volatile Path currentSourceFile = null;
|
||||||
|
|
||||||
/** Aktuell angezeigte Seite (1-basiert; 0 wenn keine Datei geladen). */
|
/** Aktuell angezeigte Seite (1-basiert; 0 wenn keine Datei geladen). */
|
||||||
private int currentPage = 0;
|
private volatile int currentPage = 0;
|
||||||
|
|
||||||
/** Anzahl der Seiten der aktuell geladenen PDF; -1 wenn nicht ermittelt. */
|
/** Anzahl der Seiten der aktuell geladenen PDF; -1 wenn nicht ermittelt. */
|
||||||
private int totalPages = -1;
|
private volatile int totalPages = -1;
|
||||||
|
|
||||||
/** Gibt an ob die Navigation bedienbar ist. */
|
/** Gibt an ob die Navigation bedienbar ist. */
|
||||||
private boolean enabled = true;
|
private boolean enabled = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user