JavaFX NullPointer on Linux

A discussion forum for JFreeChart (a 2D chart library for the Java platform).
Locked
narf
Posts: 2
Joined: Thu Aug 14, 2014 5:07 pm
antibot: No, of course not.

JavaFX NullPointer on Linux

Post by narf » Thu Aug 14, 2014 5:10 pm

Hi there,

trying to run the JavaFX Demos, e.g. TimeSeriesChartFXDemo1, on my Linux machine resulted in a blank chart (axis and legend is fine, only chart is blank). Nevertheless, the data is there as I can export it via right click, it remains unrendered somehow. After some resizing of the window, the NullPointerExceptption pasted below occurs repeatedly. There is no problem on Windows and MacOSX. Any hints how to fix this on Linux?

Cheers,
Andreas


java.lang.NullPointerException
at com.sun.prism.sw.SWGraphics.fillRect(SWGraphics.java:396)
at com.sun.javafx.sg.prism.NGCanvas$RenderBuf.validate(NGCanvas.java:244)
at com.sun.javafx.sg.prism.NGCanvas.renderClip(NGCanvas.java:625)
at com.sun.javafx.sg.prism.NGCanvas.renderStream(NGCanvas.java:781)
at com.sun.javafx.sg.prism.NGCanvas.renderContent(NGCanvas.java:578)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2043)
at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1951)
at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:225)
at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:575)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2043)
at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1951)
at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:225)
at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:575)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2043)
at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1951)
at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:225)
at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:575)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2043)
at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1951)
at com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:469)
at com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:324)
at com.sun.javafx.tk.quantum.UploadingPainter.run(UploadingPainter.java:132)
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:129)
at java.lang.Thread.run(Thread.java:745)

david.gilbert
JFreeChart Project Leader
Posts: 11734
Joined: Fri Mar 14, 2003 10:29 am
antibot: No, of course not.
Contact:

Re: JavaFX NullPointer on Linux

Post by david.gilbert » Sat Aug 16, 2014 5:31 am

I guess this is a bug in the JavaFX runtime. I'm going to try to reproduce it so we can open a bug ticket with Oracle. Which version of the JDK are you running?
David Gilbert
JFreeChart Project Leader

:idea: Read my blog
:idea: Support JFree via the Github sponsorship program

narf
Posts: 2
Joined: Thu Aug 14, 2014 5:07 pm
antibot: No, of course not.

Re: JavaFX NullPointer on Linux

Post by narf » Sat Aug 16, 2014 8:34 am

Tested with Oracle JDK updates 05 and 11. Thanks for testing!

Ironluca
Posts: 1
Joined: Mon Aug 18, 2014 10:41 am
antibot: No, of course not.

Re: JavaFX NullPointer on Linux

Post by Ironluca » Mon Aug 18, 2014 10:50 am

Same problem, stack trace & code provided below, using
JDK 8
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) Client VM (build 25.11-b03, mixed mode)
on Eclipse Luna

Windows 7 32 Bit
java.lang.NullPointerException
at com.sun.prism.sw.SWGraphics.fillRect(Unknown Source)
at com.sun.javafx.sg.prism.NGCanvas$RenderBuf.validate(Unknown Source)
at com.sun.javafx.sg.prism.NGCanvas.renderClip(Unknown Source)
at com.sun.javafx.sg.prism.NGCanvas.renderStream(Unknown Source)
at com.sun.javafx.sg.prism.NGCanvas.renderContent(Unknown Source)
at com.sun.javafx.sg.prism.NGNode.doRender(Unknown Source)
at com.sun.javafx.sg.prism.NGNode.render(Unknown Source)
at com.sun.javafx.sg.prism.NGGroup.renderContent(Unknown Source)
at com.sun.javafx.sg.prism.NGRegion.renderContent(Unknown Source)
at com.sun.javafx.sg.prism.NGNode.doRender(Unknown Source)
at com.sun.javafx.sg.prism.NGNode.render(Unknown Source)
at com.sun.javafx.sg.prism.NGGroup.renderContent(Unknown Source)
at com.sun.javafx.sg.prism.NGRegion.renderContent(Unknown Source)
at com.sun.javafx.sg.prism.NGNode.doRender(Unknown Source)
at com.sun.javafx.sg.prism.NGNode.render(Unknown Source)
at com.sun.javafx.sg.prism.NGGroup.renderContent(Unknown Source)
at com.sun.javafx.sg.prism.NGRegion.renderContent(Unknown Source)
at com.sun.javafx.sg.prism.NGNode.doRender(Unknown Source)
at com.sun.javafx.sg.prism.NGNode.render(Unknown Source)
at com.sun.javafx.sg.prism.NGGroup.renderContent(Unknown Source)
at com.sun.javafx.sg.prism.NGRegion.renderContent(Unknown Source)
at com.sun.javafx.sg.prism.NGNode.doRender(Unknown Source)
at com.sun.javafx.sg.prism.NGNode.render(Unknown Source)
at com.sun.javafx.tk.quantum.ViewPainter.doPaint(Unknown Source)
at com.sun.javafx.tk.quantum.ViewPainter.paintImpl(Unknown Source)
at com.sun.javafx.tk.quantum.UploadingPainter.run(Unknown Source)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
at com.sun.javafx.tk.RenderJob.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Code: Select all

public class TestFX extends Application {

	Stage primary;
	
	@Override
	public void start(Stage primaryStage) throws Exception {
		
		primaryStage.setTitle("Some more junk ... as usual!");
		
		StackPane stackPane=new StackPane();
		
		Button button=new Button("Junk on the Rocks!!");
		button.setId("JUNK_BUTTON");
		button.setOnAction(new EventHandler());
		stackPane.getChildren().add(button);
		
		DefaultPieDataset pieDataSet=new DefaultPieDataset();
		pieDataSet.insertValue(0,"india", 41);
		pieDataSet.insertValue(0,"China", 59);
		JFreeChart chart=ChartFactory.createPieChart("Junk", pieDataSet, true,true,false);
		
		ChartViewer chartViewer=new ChartViewer(chart);
		
		ChartCanvas canvas=new ChartCanvas(chart);
		
		stackPane.getChildren().add(chartViewer);
		
		Scene primaryScene=new Scene(stackPane);
		primaryStage.setScene(primaryScene);
		primary=primaryStage;
		primaryStage.show();

	}//start closing

	public static void main(String... args) {
		
		System.out.println("Just pure unadulterated junk ... that's all!");
		Application.launch(args);

	}//main closing
	
	class EventHandler implements javafx.event.EventHandler<ActionEvent>{

		@Override
		public void handle(ActionEvent actionEvent) {
			
			Button b=(Button)actionEvent.getSource();
			System.out.println(b.getId());

			//canvas.widthProperty().bind(pane.widthProperty()); 
	        //canvas.heightProperty().bind(pane.heightProperty());  

			
		}//handle closing

	}//inner-class closing

}//class closing
Would be great to have some pointers to go around this.

thanks & regards

nobot
Posts: 2
Joined: Sun Nov 16, 2014 10:04 pm
antibot: No, of course not.

Re: JavaFX NullPointer on Linux

Post by nobot » Sun Nov 16, 2014 10:29 pm

Stuck here with this exact same thing :(

Running JDK 1.8.0_25. Tested 32- and 64-bit JDKs on Win7 64-bit, and 64-bit JDK on Kubuntu 14.04.

Same result with both JFreeChart 1.0.19-fx and JFreeChart2 2.0-pre1.

Has anyone found a workaround for this?

david.gilbert
JFreeChart Project Leader
Posts: 11734
Joined: Fri Mar 14, 2003 10:29 am
antibot: No, of course not.
Contact:

Re: JavaFX NullPointer on Linux

Post by david.gilbert » Tue Nov 18, 2014 10:32 pm

Does anyone know if this happens on the latest early access build for 8u40?

https://jdk8.java.net/download.html

Unfortunately I don't have a Linux machine handy at present, so I can't try this out myself.
David Gilbert
JFreeChart Project Leader

:idea: Read my blog
:idea: Support JFree via the Github sponsorship program

david.gilbert
JFreeChart Project Leader
Posts: 11734
Joined: Fri Mar 14, 2003 10:29 am
antibot: No, of course not.
Contact:

Re: JavaFX NullPointer on Linux

Post by david.gilbert » Tue Nov 18, 2014 10:37 pm

I'm wondering, in fact, if it is this bug (which is already fixed for 8u40):

https://javafx-jira.kenai.com/browse/RT-37945
David Gilbert
JFreeChart Project Leader

:idea: Read my blog
:idea: Support JFree via the Github sponsorship program

nobot
Posts: 2
Joined: Sun Nov 16, 2014 10:04 pm
antibot: No, of course not.

[SOLVED] Re: JavaFX NullPointer on Linux

Post by nobot » Wed Nov 19, 2014 11:20 pm

Thank you! :)

With JDK 1.8.0_40 the error does not present itself and JFreeChart 1.0.19-fx now works fine on both Windows and Linux.

david.gilbert
JFreeChart Project Leader
Posts: 11734
Joined: Fri Mar 14, 2003 10:29 am
antibot: No, of course not.
Contact:

Re: JavaFX NullPointer on Linux

Post by david.gilbert » Sun Dec 14, 2014 7:12 pm

Good news!
David Gilbert
JFreeChart Project Leader

:idea: Read my blog
:idea: Support JFree via the Github sponsorship program

Locked