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

Reply via email to