这是indexloc提供的服务,不要输入任何密码
Skip to content

Demo will not load on MacOS #25

@effad

Description

@effad

@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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions