-
Bug
-
Resolution: Fixed
-
P3
-
fx2.0
-
Win7 x64, JDK6 x64
The test below, when left running for some time (several minutes on my machine) starts to throw exceptions:
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.util.Duration;
public class Test extends Application {
@Override public void start(final Stage stage) {
stage.setScene(new Scene(new Group()));
stage.setWidth(400);
stage.setHeight(400);
stage.show();
Timeline anim = new Timeline(new KeyFrame(Duration.millis(10),
new EventHandler<ActionEvent>() {
public void handle(ActionEvent ev) {
stage.setWidth(1000 - stage.getWidth());
}
}));
anim.setCycleCount(Timeline.INDEFINITE);
anim.play();
}
public static void main(String[] args){
launch(args);
}
}
The exception is
java.lang.NullPointerException
at com.sun.prism.impl.BaseGraphics.drawTextureVO(BaseGraphics.java:362)
at com.sun.prism.impl.BaseGraphics.drawTexture(BaseGraphics.java:331)
at com.sun.prism.impl.ps.BaseShaderGraphics.drawTexture(BaseShaderGraphics.java:100)
at com.sun.prism.impl.BaseGraphics.drawTexture(BaseGraphics.java:322)
at com.sun.prism.d3d.D3DSwapChain.present(D3DSwapChain.java:32)
at com.sun.javafx.tk.quantum.PaintRunnable.run(PaintRunnable.java:328)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
at com.sun.prism.render.RenderJob.run(RenderJob.java:29)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at com.sun.javafx.tk.quantum.QuantumRenderer$ObservedRunnable.run(QuantumRenderer.java:67)
at java.lang.Thread.run(Thread.java:662)
I've found something suspicious in PaintRunnable.run():
311 disposePresentable();
312 presentable = factory.createPresentable(scene.getPlatformView());
createPresentable() creates a SwapChain and a RTTexture, but disposePresentable() disposes SwapChain only.
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.util.Duration;
public class Test extends Application {
@Override public void start(final Stage stage) {
stage.setScene(new Scene(new Group()));
stage.setWidth(400);
stage.setHeight(400);
stage.show();
Timeline anim = new Timeline(new KeyFrame(Duration.millis(10),
new EventHandler<ActionEvent>() {
public void handle(ActionEvent ev) {
stage.setWidth(1000 - stage.getWidth());
}
}));
anim.setCycleCount(Timeline.INDEFINITE);
anim.play();
}
public static void main(String[] args){
launch(args);
}
}
The exception is
java.lang.NullPointerException
at com.sun.prism.impl.BaseGraphics.drawTextureVO(BaseGraphics.java:362)
at com.sun.prism.impl.BaseGraphics.drawTexture(BaseGraphics.java:331)
at com.sun.prism.impl.ps.BaseShaderGraphics.drawTexture(BaseShaderGraphics.java:100)
at com.sun.prism.impl.BaseGraphics.drawTexture(BaseGraphics.java:322)
at com.sun.prism.d3d.D3DSwapChain.present(D3DSwapChain.java:32)
at com.sun.javafx.tk.quantum.PaintRunnable.run(PaintRunnable.java:328)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
at com.sun.prism.render.RenderJob.run(RenderJob.java:29)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at com.sun.javafx.tk.quantum.QuantumRenderer$ObservedRunnable.run(QuantumRenderer.java:67)
at java.lang.Thread.run(Thread.java:662)
I've found something suspicious in PaintRunnable.run():
311 disposePresentable();
312 presentable = factory.createPresentable(scene.getPlatformView());
createPresentable() creates a SwapChain and a RTTexture, but disposePresentable() disposes SwapChain only.
- blocks
-
JDK-8115803 Null pointer exception in Graphic core on http://www.mtruapehu.com/
- Closed
- duplicates
-
JDK-8119879 Scene Builder's Preview window does not refresh correctly
- Closed
-
JDK-8112938 NullPointerException during stage resize
- Closed
-
JDK-8114439 NullPointerException happens if a ListView is resized many times
- Closed
- relates to
-
JDK-8114576 Another D3DSwapChain NPE
- Closed
-
JDK-8119879 Scene Builder's Preview window does not refresh correctly
- Closed
(1 relates to)