-
Notifications
You must be signed in to change notification settings - Fork 20
Closed
Description
@dlemmermann has found that the demo no longer loads when on MacOS.
While it still works on some older MacOS / JDK (?) versions, there seems to be a hidden deadlock on Mac which goes like this:
"PDFView Thread" #48 [73767] daemon prio=5 os_prio=31 cpu=26,30ms elapsed=308,36s tid=0x00007fbb9cbc6200 nid=73767 runnable [0x00007000119d7000]
java.lang.Thread.State: RUNNABLE
at sun.lwawt.macosx.LWCToolkit.initAppkit([java.desktop@24.0.2/Native](mailto:java.desktop@24.0.2/Native) Method)
at sun.lwawt.macosx.LWCToolkit.<init>([java.desktop@24.0.2/LWCToolkit.java:188](mailto:java.desktop@24.0.2/LWCToolkit.java:188))
at sun.awt.PlatformGraphicsInfo.createToolkit([java.desktop@24.0.2/PlatformGraphicsInfo.java:43](mailto:java.desktop@24.0.2/PlatformGraphicsInfo.java:43))
at java.awt.Toolkit.getDefaultToolkit([java.desktop@24.0.2/Toolkit.java:580](mailto:java.desktop@24.0.2/Toolkit.java:580))
- locked <0x0000000702095698> (a java.lang.Class for java.awt.Toolkit)
at sun.awt.CGraphicsEnvironment.<clinit>([java.desktop@24.0.2/CGraphicsEnvironment.java:72](mailto:java.desktop@24.0.2/CGraphicsEnvironment.java:72))
at sun.awt.PlatformGraphicsInfo.createGE([java.desktop@24.0.2/PlatformGraphicsInfo.java:39](mailto:java.desktop@24.0.2/PlatformGraphicsInfo.java:39))
at java.awt.GraphicsEnvironment$LocalGE.createGE([java.desktop@24.0.2/GraphicsEnvironment.java:89](mailto:java.desktop@24.0.2/GraphicsEnvironment.java:89))
at java.awt.GraphicsEnvironment$LocalGE.<clinit>([java.desktop@24.0.2/GraphicsEnvironment.java:80](mailto:java.desktop@24.0.2/GraphicsEnvironment.java:80))
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment([java.desktop@24.0.2/GraphicsEnvironment.java:102](mailto:java.desktop@24.0.2/GraphicsEnvironment.java:102))
at java.awt.image.BufferedImage.createGraphics([java.desktop@24.0.2/BufferedImage.java:1170](mailto:java.desktop@24.0.2/BufferedImage.java:1170))
at org.apache.pdfbox.rendering.PDFRenderer.renderImage([org.apache.pdfbox@3.0.5/PDFRenderer.java:310](mailto:org.apache.pdfbox@3.0.5/PDFRenderer.java:310))
at com.dlsc.pdfviewfx.PDFBoxDocument.renderPage([com.dlsc.pdfviewfx@3.2.1/PDFBoxDocument.java:85](mailto:com.dlsc.pdfviewfx@3.2.1/PDFBoxDocument.java:85))
- locked <0x00000007015704f0> (a com.dlsc.pdfviewfx.PDFBoxDocument)
at com.dlsc.pdfviewfx.skins.PDFViewSkin$RenderTask.renderPDFPage([com.dlsc.pdfviewfx@3.2.1/PDFViewSkin.java:1007](mailto:com.dlsc.pdfviewfx@3.2.1/PDFViewSkin.java:1007))
at com.dlsc.pdfviewfx.skins.PDFViewSkin$RenderTask.call([com.dlsc.pdfviewfx@3.2.1/PDFViewSkin.java:995](mailto:com.dlsc.pdfviewfx@3.2.1/PDFViewSkin.java:995))
at com.dlsc.pdfviewfx.skins.PDFViewSkin$RenderTask.call([com.dlsc.pdfviewfx@3.2.1/PDFViewSkin.java:979](mailto:com.dlsc.pdfviewfx@3.2.1/PDFViewSkin.java:979))
at javafx.concurrent.Task$TaskCallable.call([javafx.graphics@24.0.2/Task.java:1388](mailto:javafx.graphics@24.0.2/Task.java:1388))
at java.util.concurrent.FutureTask.run([java.base@24.0.2/FutureTask.java:328](mailto:java.base@24.0.2/FutureTask.java:328))
at javafx.concurrent.Service.lambda$executeTask$4([javafx.graphics@24.0.2/Service.java:714](mailto:javafx.graphics@24.0.2/Service.java:714))
at javafx.concurrent.Service$$Lambda/0x000000012e2f3f80.run([javafx.graphics@24.0.2/Unknown](mailto:javafx.graphics@24.0.2/Unknown) Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker([java.base@24.0.2/ThreadPoolExecutor.java:1095](mailto:java.base@24.0.2/ThreadPoolExecutor.java:1095))
at java.util.concurrent.ThreadPoolExecutor$Worker.run([java.base@24.0.2/ThreadPoolExecutor.java:619](mailto:java.base@24.0.2/ThreadPoolExecutor.java:619))
at java.lang.Thread.runWith([java.base@24.0.2/Thread.java:1460](mailto:java.base@24.0.2/Thread.java:1460))
at java.lang.Thread.run([java.base@24.0.2/Thread.java:1447](mailto:java.base@24.0.2/Thread.java:1447))
=> PDFView Thread does not return from LWCToolkit.initAppkit and on the other hand we have:
"JavaFX Application Thread" #27 [259] daemon prio=5 os_prio=31 cpu=1030,86ms elapsed=467,76s tid=0x00007fbb9a0bc000 nid=259 waiting for monitor entry [0x00007ff7bed0e000]
java.lang.Thread.State: BLOCKED (on object monitor)
at com.dlsc.pdfviewfx.PDFBoxDocument.isLandscape([com.dlsc.pdfviewfx@3.2.1/PDFBoxDocument.java:69](mailto:com.dlsc.pdfviewfx@3.2.1/PDFBoxDocument.java:69))
- waiting to lock <0x00000007015704f0> (a com.dlsc.pdfviewfx.PDFBoxDocument)
at com.dlsc.pdfviewfx.skins.PDFViewSkin$PdfPageListCell.updateItem([com.dlsc.pdfviewfx@3.2.1/PDFViewSkin.java:1201](mailto:com.dlsc.pdfviewfx@3.2.1/PDFViewSkin.java:1201))
at com.dlsc.pdfviewfx.skins.PDFViewSkin$PdfPageListCell.updateItem([com.dlsc.pdfviewfx@3.2.1/PDFViewSkin.java:1150](mailto:com.dlsc.pdfviewfx@3.2.1/PDFViewSkin.java:1150))
at javafx.scene.control.ListCell.updateItem([javafx.controls@24.0.2/ListCell.java:526](mailto:javafx.controls@24.0.2/ListCell.java:526))
=> Application Thread is BLOCKED, since it wants to get the landscape orientation of a page which requires access to the PDFBoxDocument but that is locked by the PDView Thread above.
Metadata
Metadata
Assignees
Labels
No labels