To reproduce run the following app, then continuously right click on the galaxy of spinning stars to keep bringing up context navigation menus, eventually you will start to get NullPointerExceptions.
TestApp
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
public class WebViewGalaxy extends Application {
public static void main(String[] args) throws Exception { launch(args); }
public void start(final Stage stage) throws Exception {
WebView webView = new WebView(); webView.getEngine().load("http://29a.ch/sandbox/2010/galaxy/");
stage.setScene(new Scene(webView, 800, 800)); stage.show();
System.getProperties().list(System.out);
}
}
java.lang.NullPointerException
at com.sun.webpane.sg.prism.WCGraphicsPrismContext.drawString(WCGraphicsPrismContext.java:670)
at com.sun.webpane.platform.graphics.GraphicsDecoder.decode(GraphicsDecoder.java:286)
at com.sun.webpane.platform.graphics.WCRenderQueue.decode(WCRenderQueue.java:72)
at com.sun.webpane.platform.graphics.WCRenderQueue.decode(WCRenderQueue.java:86)
at com.sun.webpane.platform.graphics.GraphicsDecoder.decode(GraphicsDecoder.java:327)
at com.sun.webpane.platform.graphics.WCRenderQueue.decode(WCRenderQueue.java:72)
at com.sun.webpane.platform.WebPage.paint2GC(WebPage.java:678)
at com.sun.webpane.platform.WebPage.paint(WebPage.java:658)
at com.sun.javafx.sg.prism.NGWebView.renderContent(NGWebView.java:71)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:185)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:39)
at com.sun.javafx.sg.BaseNode.render(BaseNode.java:1139)
at com.sun.javafx.tk.quantum.PaintRunnable.doPaint(PaintRunnable.java:214)
at com.sun.javafx.tk.quantum.PaintRunnable.paintImpl(PaintRunnable.java:151)
at com.sun.javafx.tk.quantum.PaintRunnable.run(PaintRunnable.java:349)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
at com.sun.prism.render.RenderJob.run(RenderJob.java:29)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:101)
at java.lang.Thread.run(Thread.java:722)
TestApp
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
public class WebViewGalaxy extends Application {
public static void main(String[] args) throws Exception { launch(args); }
public void start(final Stage stage) throws Exception {
WebView webView = new WebView(); webView.getEngine().load("http://29a.ch/sandbox/2010/galaxy/");
stage.setScene(new Scene(webView, 800, 800)); stage.show();
System.getProperties().list(System.out);
}
}
java.lang.NullPointerException
at com.sun.webpane.sg.prism.WCGraphicsPrismContext.drawString(WCGraphicsPrismContext.java:670)
at com.sun.webpane.platform.graphics.GraphicsDecoder.decode(GraphicsDecoder.java:286)
at com.sun.webpane.platform.graphics.WCRenderQueue.decode(WCRenderQueue.java:72)
at com.sun.webpane.platform.graphics.WCRenderQueue.decode(WCRenderQueue.java:86)
at com.sun.webpane.platform.graphics.GraphicsDecoder.decode(GraphicsDecoder.java:327)
at com.sun.webpane.platform.graphics.WCRenderQueue.decode(WCRenderQueue.java:72)
at com.sun.webpane.platform.WebPage.paint2GC(WebPage.java:678)
at com.sun.webpane.platform.WebPage.paint(WebPage.java:658)
at com.sun.javafx.sg.prism.NGWebView.renderContent(NGWebView.java:71)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:185)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:39)
at com.sun.javafx.sg.BaseNode.render(BaseNode.java:1139)
at com.sun.javafx.tk.quantum.PaintRunnable.doPaint(PaintRunnable.java:214)
at com.sun.javafx.tk.quantum.PaintRunnable.paintImpl(PaintRunnable.java:151)
at com.sun.javafx.tk.quantum.PaintRunnable.run(PaintRunnable.java:349)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
at com.sun.prism.render.RenderJob.run(RenderJob.java:29)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:101)
at java.lang.Thread.run(Thread.java:722)
- duplicates
-
JDK-8090091 image data associated with cached nodes that are removed from a scene are not aggressively released
-
- Open
-