Dansoftowner / PDFViewerFX

A pdf viewer library for your javaFX application
Apache License 2.0
66 stars 24 forks source link

Exceptions on resizing #17

Open stephansann opened 3 years ago

stephansann commented 3 years ago

Hi @Dansoftowner

When I resize my application's window with a PDF loaded via PDFViewerFX, often (not always) I find the following Exception:

myMac2014:target stephan$ java -jar document-archiver-1.6.0-SNAPSHOT-with-dependencies.jar 
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
PDF 0386647a5c8e88775aed5126368f949c [1.4 macOS Version 11.1 (Build 20C69) Quartz PDFContext / Safari] (PDF.js: 2.7.570)
java.lang.IllegalArgumentException: Texture must be non-null
    at com.sun.scenario.effect.impl.prism.PrTexture.<init>(PrTexture.java:38)
    at com.sun.scenario.effect.impl.prism.PrDrawable.<init>(PrDrawable.java:44)
    at com.sun.scenario.effect.impl.prism.ps.PPSDrawable.<init>(PPSDrawable.java:39)
    at com.sun.scenario.effect.impl.prism.ps.PPSDrawable.create(PPSDrawable.java:60)
    at com.sun.scenario.effect.impl.prism.ps.PPSRenderer.createCompatibleImage(PPSRenderer.java:163)
    at com.sun.scenario.effect.impl.prism.ps.PPSRenderer.createCompatibleImage(PPSRenderer.java:67)
    at com.sun.scenario.effect.impl.ImagePool.checkOut(ImagePool.java:183)
    at com.sun.scenario.effect.impl.Renderer.getCompatibleImage(Renderer.java:116)
    at com.sun.scenario.effect.impl.prism.ps.PPSRenderer.getCompatibleImage(PPSRenderer.java:168)
    at com.sun.scenario.effect.impl.prism.ps.PPSRenderer.getCompatibleImage(PPSRenderer.java:67)
    at com.sun.scenario.effect.Effect.getCompatibleImage(Effect.java:479)
    at com.sun.javafx.webkit.prism.WCGraphicsPrismContext$ClipLayer.render(WCGraphicsPrismContext.java:1464)
    at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.renderLayer(WCGraphicsPrismContext.java:203)
    at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.restoreStateInternal(WCGraphicsPrismContext.java:220)
    at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.restoreState(WCGraphicsPrismContext.java:234)
    at com.sun.webkit.graphics.GraphicsDecoder.decode(GraphicsDecoder.java:222)
    at com.sun.webkit.graphics.WCRenderQueue.decode(WCRenderQueue.java:92)
    at com.sun.webkit.graphics.WCRenderQueue.decode(WCRenderQueue.java:103)
    at com.sun.webkit.graphics.WCRenderQueue.decode(WCRenderQueue.java:110)
    at com.sun.webkit.graphics.GraphicsDecoder.decode(GraphicsDecoder.java:349)
    at com.sun.webkit.graphics.WCRenderQueue.decode(WCRenderQueue.java:92)
    at com.sun.webkit.WebPage.paint2GC(WebPage.java:740)
    at com.sun.webkit.WebPage.paint(WebPage.java:707)
    at com.sun.javafx.sg.prism.web.NGWebView.renderContent(NGWebView.java:95)
    at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2072)
    at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1964)
    at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:270)
    at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:579)
    at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2072)
    at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1964)
    at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:270)
    at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:579)
    at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2072)
    at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1964)
    at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:270)
    at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:579)
    at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2072)
    at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1964)
    at com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:479)
    at com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:328)
    at com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:91)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
    at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
    at java.base/java.lang.Thread.run(Thread.java:834)

I am also using WebViews with other file types and there I don't see any problem. So I would guess it's not my application code. Tried to go back to version 0.7, just to find the problem exists there, too.

Any ideas?

Thanks and best regards Stephan

Dansoftowner commented 3 years ago

Hi @stephansann ,

Thanks for reporting this issue! I will have a look at it but I have a feeling that It's a javafx/web(view) or pdf.js problem.

Best regards Daniel