b10: regression?
Richard Bair
richard.bair at oracle.com
Thu May 31 17:34:25 PDT 2012
Definitely file a bug. CheckBox should never (ever!) require the Screen to be queried, since looking up the Screens takes time and will negatively impact startup.
Thanks
Richard
On May 31, 2012, at 3:32 PM, Florian Brunner wrote:
> Hi,
>
> On Linux (32-bit) with JavaFX 2.2 b08 I was able to instantiate a control in a unit test, e.g.
>
> import javafx.scene.control.CheckBox;
> import org.junit.After;
> import org.junit.Before;
> import org.junit.Test;
>
>
> public class MyTest {
>
> public MyTest() {
> }
>
>
> @Before
> public void setUp() {
> CheckBox cb = new CheckBox("test");
> }
>
> @After
> public void tearDown() {
> }
>
>
> @Test
> public void someTest() {
> System.out.println("someTest");
> }
>
> }
>
> With b10 I'm getting an error:
>
> java.lang.ExceptionInInitializerError
> at mypackage.MyTest.setUp(MyTest.java:28)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
> at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
> at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
> at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
> at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:30)
> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
> at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:236)
> at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:134)
> at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:113)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
> at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
> at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
> at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:103)
> at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:74)
> Caused by: java.lang.NullPointerException
> at com.sun.glass.ui.Screen.getMainScreen(Screen.java:15)
> at com.sun.javafx.tk.quantum.QuantumToolkit.getPrimaryScreen(QuantumToolkit.java:589)
> at javafx.stage.Screen.updateConfiguration(Screen.java:102)
> at javafx.stage.Screen.checkDirty(Screen.java:97)
> at javafx.stage.Screen.getPrimary(Screen.java:176)
> at com.sun.javafx.Utils.isQVGAScreen(Utils.java:813)
> at javafx.scene.control.UAStylesheetLoader$1.run(UAStylesheetLoader.java:69)
> at java.security.AccessController.doPrivileged(Native Method)
> at javafx.scene.control.UAStylesheetLoader.loadUAStylesheet(UAStylesheetLoader.java:58)
> at javafx.scene.control.UAStylesheetLoader.doLoad(UAStylesheetLoader.java:51)
> at javafx.scene.control.Control.<clinit>(Control.java:95)
> ... 31 more
>
>
> Is this a regression or a desired behaviour? If it's a desired behaviour: Is there a way to write some simple JUnit tests for controls?
>
> Regards,
> Florian
More information about the openjfx-dev
mailing list