Occasional Canvas Error (stacktrace)

David Gilbert dave at jfree.org
Wed Nov 2 07:18:40 UTC 2016


I had something similar reported for JFreeChart running on JavaFX - see this thread:

http://www.jfree.org/forum/viewtopic.php?f=3&t=117577

In the end it seems to have been caused by UI calls coming from another thread, so you should check if your code is doing this.

Best regards,

David Gilbert
http://www.jfree.org/


> On 2 Nov 2016, at 00:56, Michael Ennen <mike.ennen at gmail.com> wrote:
> 
> I have implemented a "candle stick chart" using the JavaFX canvas API. I
> have transitioned from using the charts API because after experimenting
> heavily with the chart API I came to the conclusion that for a
> (auto)-zooming, scrolling, and dynamically updated chart with various
> graphical indicators with *precise* control the canvas API better fit my
> needs. My implementation relies on the following canvas API methods:
> 
> beginPath, clip, clearRect, closePath, fill, lineTo, moveTo, restore, rect,
> save, setFont, setFill, setStroke, setLineWidth, stroke, strokeRect, and
> strokeText.
> 
> Sometimes I run into the following exception when the chart is being
> rendered, but a second attempt at rendering (which is triggered by, for
> example, scrolling or zooming the chart) always makes it work again. This
> exception is seen only rarely and I have not been able to come up with a
> simplified test case that exhibits the error in a deterministic fashion,
> unfortunately.
> 
> I realize that the likelihood of being able to fix the error with only the
> stack trace is slim, but I thought I may as well give a report of it just
> in case (and was encouraged by the fact that the entire code-path starts
> and stays inside the JavaFX code base (i.e. none of my code is actually
> present in the stack trace).
> 
> Here is the full stack trace:
> 
> java.nio.BufferOverflowException
>        at
> com.sun.javafx.sg.prism.GrowableDataBuffer.ensureReadCapacity(GrowableDataBuffer.java:317)
>        at
> com.sun.javafx.sg.prism.GrowableDataBuffer.getInt(GrowableDataBuffer.java:527)
>        at
> com.sun.javafx.sg.prism.GrowableDataBuffer.getFloat(GrowableDataBuffer.java:563)
>        at com.sun.javafx.sg.prism.NGCanvas.renderStream(NGCanvas.java:957)
>        at com.sun.javafx.sg.prism.NGCanvas.renderContent(NGCanvas.java:606)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2294)
>        at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2188)
>        at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2214)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2047)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2294)
>        at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2188)
>        at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2214)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2047)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2294)
>        at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2188)
>        at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2214)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2047)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2294)
>        at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2188)
>        at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2214)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2047)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2294)
>        at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2188)
>        at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2214)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2047)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2294)
>        at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2188)
>        at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2214)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2047)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at
> com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:477)
>        at
> com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:323)
>        at
> com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:91)
>        at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
>        at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58)
>        at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>        at
> com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
>        at java.lang.Thread.run(Thread.java:745)
> java.lang.InternalError: Unrecognized PGCanvas token: 67
>        at com.sun.javafx.sg.prism.NGCanvas.renderStream(NGCanvas.java:1157)
>        at com.sun.javafx.sg.prism.NGCanvas.renderContent(NGCanvas.java:606)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2294)
>        at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2188)
>        at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2214)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2047)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2294)
>        at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2188)
>        at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2214)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2047)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2294)
>        at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2188)
>        at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2214)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2047)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2294)
>        at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2188)
>        at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2214)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2047)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2294)
>        at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2188)
>        at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2214)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2047)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2294)
>        at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2188)
>        at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2214)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2047)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at
> com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:477)
>        at
> com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:323)
>        at
> com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:91)
>        at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
>        at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58)
>        at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>        at
> com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
>        at java.lang.Thread.run(Thread.java:745)
> java.lang.InternalError: Unrecognized PGCanvas token: 107
>        at com.sun.javafx.sg.prism.NGCanvas.renderStream(NGCanvas.java:1157)
>        at
> com.sun.javafx.sg.prism.NGCanvas.renderForcedContent(NGCanvas.java:626)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:332)
>        at
> com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:91)
>        at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
>        at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58)
>        at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>        at
> com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
>        at java.lang.Thread.run(Thread.java:745)
> java.lang.ClassCastException: com.sun.prism.paint.Color cannot be cast to
> com.sun.javafx.font.PGFont
>        at com.sun.javafx.sg.prism.NGCanvas.renderStream(NGCanvas.java:1000)
>        at
> com.sun.javafx.sg.prism.NGCanvas.renderForcedContent(NGCanvas.java:626)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:332)
>        at
> com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:91)
>        at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
>        at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58)
>        at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>        at
> com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
>        at java.lang.Thread.run(Thread.java:745)
> java.lang.ClassCastException: com.sun.javafx.font.PrismFont cannot be cast
> to java.lang.String
>        at
> com.sun.javafx.sg.prism.NGCanvas.handleRenderOp(NGCanvas.java:1361)
>        at com.sun.javafx.sg.prism.NGCanvas.renderStream(NGCanvas.java:1097)
>        at
> com.sun.javafx.sg.prism.NGCanvas.renderForcedContent(NGCanvas.java:626)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.sg.prism.NGGroup.renderForcedContent(NGGroup.java:198)
>        at
> com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:332)
>        at
> com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:91)
>        at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
>        at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58)
>        at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>        at
> com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
>        at java.lang.Thread.run(Thread.java:745)
> java.lang.ClassCastException: com.sun.prism.paint.Color cannot be cast to
> java.lang.String
>        at
> com.sun.javafx.sg.prism.NGCanvas.handleRenderOp(NGCanvas.java:1361)
>        at com.sun.javafx.sg.prism.NGCanvas.renderStream(NGCanvas.java:1097)
>        at com.sun.javafx.sg.prism.NGCanvas.renderContent(NGCanvas.java:606)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2294)
>        at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2188)
>        at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2214)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2047)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2294)
>        at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2188)
>        at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2214)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2047)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2294)
>        at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2188)
>        at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2214)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2047)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2294)
>        at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2188)
>        at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2214)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2047)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2294)
>        at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2188)
>        at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2214)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2047)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2294)
>        at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2188)
>        at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2214)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2047)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
>        at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
>        at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
>        at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
>        at
> com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:477)
>        at
> com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:330)
>        at
> com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:91)
>        at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
>        at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58)
>        at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>        at
> com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
>        at java.lang.Thread.run(Thread.java:745)
> 
> Thanks very much, and sorry for not being able to provide a replicable test
> case.
> 
> -- 
> Michael Ennen



More information about the openjfx-dev mailing list