JFXtras Ensemble won't run

811 views
Skip to first unread message

Ian Beaumont

unread,
Apr 25, 2013, 10:55:46 AM4/25/13
to jfxtra...@googlegroups.com
When it tries to launch I get the runtime error shown below.  Any ideas?


Java Plug-in 10.21.2.11
Using JRE version 1.7.0_21-b11 Java HotSpot(TM) 64-Bit Server VM
User home directory = C:\Users\ibeaumont
----------------------------------------------------
c:   clear console window
f:   finalize objects on finalization queue
g:   garbage collect
h:   display this help message
l:   dump classloader list
m:   print memory usage
o:   trigger logging
q:   hide console
r:   reload policy configuration
s:   dump system and deployment properties
t:   dump thread list
v:   dump thread stack
x:   clear classloader cache
0-5: set trace level to <n>
----------------------------------------------------
Resource http://jfxtras.org/resources/java/Ensemble.jnlp has future expires: Thu Apr 25 15:58:59 BST 2013 update check skipped.
Resource http://jfxtras.org/resources/java/Ensemble.jnlp has future expires: Thu Apr 25 15:58:59 BST 2013 update check skipped.
Resource http://jfxtras.org/resources/java/Ensemble.jar has future expires: Thu Apr 25 15:58:59 BST 2013 update check skipped.
    Match: beginTraversal
Match: digest selected JREDesc: JREDesc[version 1.7.0.09+, heap=-1--1, args=null, href=http://java.sun.com/products/autodl/j2se, sel=false, null, null], JREInfo: JREInfo for index 0:
    platform is: 1.7
    product is: 1.7.0_21
    location is: http://java.sun.com/products/autodl/j2se
    path is: C:\Program Files\Java\jre7\bin\javaw.exe
    args is: null
    native platform is: Windows, amd64 [ x86_64, 64bit ]
    JavaFX runtime is: JavaFX 2.2.21 found at C:\Program Files\Java\jre7\
    enabled is: true
    registered is: true
    system is: true

    Match: ignoring maxHeap: -1
    Match: ignoring InitHeap: -1
    Match: digesting vmargs: null
    Match: digested vmargs: [JVMParameters: isSecure: true, args: ]
    Match: JVM args after accumulation: [JVMParameters: isSecure: true, args: ]
    Match: digest LaunchDesc: http://jfxtras.org/resources/java/Ensemble.jnlp
    Match: digest properties: []
    Match: JVM args: [JVMParameters: isSecure: true, args: ]
    Match: endTraversal ..
    Match: JVM args final:
    Match: Running JREInfo Version    match: 1.7.0.21 == 1.7.0.21
     Match: Running JVM args match: have:<>  satisfy want:<>
Resource http://jfxtras.org/resources/java/Ensemble.jar has future expires: Thu Apr 25 15:58:59 BST 2013 update check skipped.
Resource http://jfxtras.org/resources/java/Ensemble.jar has future expires: Thu Apr 25 15:58:59 BST 2013 update check skipped.
java.lang.ExceptionInInitializerError
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at com.sun.javafx.applet.FXApplet2.init(FXApplet2.java:63)
    at com.sun.deploy.uitoolkit.impl.fx.FXApplet2Adapter.init(FXApplet2Adapter.java:207)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "java.net.useSystemProxies" "write")
    at java.security.AccessControlContext.checkPermission(Unknown Source)
    at java.security.AccessController.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPermission(Unknown Source)
    at sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown Source)
    at java.lang.System.setProperty(Unknown Source)
    at ensemble.Ensemble2.<clinit>(Ensemble2.java:77)
    ... 10 more

Tom

unread,
Apr 25, 2013, 4:38:26 PM4/25/13
to jfxtra...@googlegroups.com
Interesting, a permission problem. It tries to set a system property;

java.security.AccessControlException: access denied ("java.util.PropertyPermission" "java.net.useSystemProxies" "write")
at java.lang.System.setProperty(Unknown Source)
at ensemble.Ensemble2.<clinit>(Ensemble2.java:77)



> --
> You received this message because you are subscribed to the Google Groups "JFXtras Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to jfxtras-user...@googlegroups.com.
> To post to this group, send email to jfxtra...@googlegroups.com.
> Visit this group at http://groups.google.com/group/jfxtras-users?hl=en.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>

Felix Bembrick

unread,
Apr 27, 2013, 2:41:27 AM4/27/13
to jfxtra...@googlegroups.com
I get the same problem.  It looks like the new security-related features in 7u21 are causing problems for launching Ensemble.  I had no problems launching it with previous Java 7 updates.


To unsubscribe from this group and stop receiving emails from it, send an email to jfxtras-users+unsubscribe@googlegroups.com.

To post to this group, send email to jfxtra...@googlegroups.com.
Visit this group at http://groups.google.com/group/jfxtras-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


--
You received this message because you are subscribed to the Google Groups "JFXtras Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jfxtras-users+unsubscribe@googlegroups.com.

Tom

unread,
Apr 27, 2013, 2:50:17 AM4/27/13
to jfxtra...@googlegroups.com
Line 77 here is the culprit.
https://github.com/JFXtras/jfxtras-ensemble/blob/master/src/ensemble/Ensemble2.java

I have no idea why that is in there. The Ensemble application actually is a copy of JavaFX's. See what happens if I comment that out.

Tom
To unsubscribe from this group and stop receiving emails from it, send an email to jfxtras-user...@googlegroups.com.

To post to this group, send email to jfxtra...@googlegroups.com.
Visit this group at http://groups.google.com/group/jfxtras-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.



--
You received this message because you are subscribed to the Google Groups "JFXtras Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jfxtras-user...@googlegroups.com.

To post to this group, send email to jfxtra...@googlegroups.com.
Visit this group at http://groups.google.com/group/jfxtras-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


--
You received this message because you are subscribed to the Google Groups "JFXtras Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jfxtras-user...@googlegroups.com.

Tom

unread,
Apr 27, 2013, 3:02:50 AM4/27/13
to jfxtra...@googlegroups.com
Fixed the one issue, now I've got a new one. All related to the system properties. Great.


Tom



On 2013-04-27 08:41, Felix Bembrick wrote:
To unsubscribe from this group and stop receiving emails from it, send an email to jfxtras-user...@googlegroups.com.

To post to this group, send email to jfxtra...@googlegroups.com.
Visit this group at http://groups.google.com/group/jfxtras-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.



--
You received this message because you are subscribed to the Google Groups "JFXtras Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jfxtras-user...@googlegroups.com.

To post to this group, send email to jfxtra...@googlegroups.com.
Visit this group at http://groups.google.com/group/jfxtras-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


--
You received this message because you are subscribed to the Google Groups "JFXtras Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jfxtras-user...@googlegroups.com.

Tom

unread,
Apr 27, 2013, 6:42:51 AM4/27/13
to jfxtra...@googlegroups.com
Isse not good. I get exceptions on every access to system property, even the standard ones (user.home), so this has to be a applet configuration issue. And I can't reproduce it on my desktop :-(


Tom


On 2013-04-27 08:41, Felix Bembrick wrote:
To unsubscribe from this group and stop receiving emails from it, send an email to jfxtras-user...@googlegroups.com.

To post to this group, send email to jfxtra...@googlegroups.com.
Visit this group at http://groups.google.com/group/jfxtras-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.



--
You received this message because you are subscribed to the Google Groups "JFXtras Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jfxtras-user...@googlegroups.com.

To post to this group, send email to jfxtra...@googlegroups.com.
Visit this group at http://groups.google.com/group/jfxtras-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


--
You received this message because you are subscribed to the Google Groups "JFXtras Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jfxtras-user...@googlegroups.com.

Mark Heckler

unread,
Apr 27, 2013, 11:53:13 AM4/27/13
to jfxtra...@googlegroups.com
The "easy fix" - use temporarily to test only, please - is to open up access locally. Here is a useful doc:

In short, run policytool, add a policy entry, add permission specifying nothing in any textboxes (so it defaults to something like "CODEBASE ALL" - going from memory here), then save the file as .java.policy in your home directory (~). You'll be able to run anything at that point. (Danger, Will Robinson!)

Once you verify it all works, it would be a good idea to dial back permissions as possible. My notes are on my other machine, sorry I can't be more specific at the moment.

Hope this helps,
Mark

Tom

unread,
Apr 27, 2013, 5:36:14 PM4/27/13
to jfxtra...@googlegroups.com
Thanks, but hacking it to run is not really what we need, it is a demo afterall. I'd rather figure out how to setup the applet so it has permissions to at least read system properties. Need to dive into that.

Tom

Mark Heckler

unread,
Apr 27, 2013, 7:15:43 PM4/27/13
to jfxtra...@googlegroups.com
Tom,

If you can find a way to setup the applet to override the user's security settings, you should probably let Oracle know. Somewhat defeats the whole idea of the new security model. :-D

All the best,
Mark

Felix Bembrick

unread,
Apr 27, 2013, 7:24:52 PM4/27/13
to jfxtra...@googlegroups.com
I agree Mark, but surely the intent of these new security settings was not to prevent legitimate applets from launching!  I am confident that Oracle have provided a way to configure applets to run in this new sandbox *and* set system properties (like they used to be able to).  The trick may be to find any documentation on such settings...

Mark Heckler

unread,
Apr 27, 2013, 7:37:51 PM4/27/13
to jfxtra...@googlegroups.com
Makes sense, and I agree. I'm just not sure it's possible without some degree of consent/cooperation from the end user WRT security/policy settings. I ran into this just this past week on another applet I was tinkering with, so would love to have a better answer as well.

Thanks for pursuing this, Tom!

Mark

Felix Bembrick

unread,
Apr 27, 2013, 7:50:21 PM4/27/13
to jfxtra...@googlegroups.com
Well if each "end user" has to fiddle with policy settings then lots of applets in production are going to break and it's not really a practical solution.  I *really* hope Oracle considered things like this!

Tom

unread,
Apr 28, 2013, 3:08:03 AM4/28/13
to jfxtra...@googlegroups.com
I suspect / hope / pray that, like apps on a phone, the coder can specify what the applet wants to do, and the user can either grant or deny this. This seems to be the security model of choice lately, so chances are Oracle will do something similar. Now I need to figure out where any documentation is.

OTOH, Ensemble is a copied application, and I don't know about you guys, but I think it's not really practical how it is setup. It should not be that hard to create a different wrapper / manager that shows the icons and runs the tests. One that does not need to be compiled in order to generate some kind of configuration file of the tests, but uses reflection. And foremost one that does no do flaky stuff like writing system properties. (Oh, and one that compiles in Eclipse ;-) You may not be getting the fancy things like the Javadoc from the web (apparently it does that), but I doubt a lot of people really notice that.

So maybe time is better invested on a different effort. But first some research into the new security stuff is needed.

Tom

unread,
Apr 28, 2013, 3:16:08 PM4/28/13
to jfxtra...@googlegroups.com
I've commented out all the accessing of the system properties as first quick fix, but it ain't getting any prettier. It can't load the com.sun skin class:

SEVERE: javafx.scene.control.Control loadSkinClass Failed to load skin 'StringProperty [bean: CalendarPicker@6573f3[styleClass=CalendarPicker], name: skinClassName, value: jfxtras.labs.internal.scene.control.skin.CalendarPickerControlSkin]' for control CalendarPicker@6573f3[styleClass=CalendarPicker]
java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "accessClassInPackage.com.sun.javafx.scene.control.skin")
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPackageAccess(Unknown Source)
at sun.plugin2.applet.SecurityManagerHelper.checkPackageAccessHelper(Unknown Source)
at sun.plugin2.applet.FXAppletSecurityManager.checkPackageAccess(Unknown Source)
at java.lang.ClassLoader$1.run(Unknown Source)
at java.lang.ClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.lang.ClassLoader.checkPackageAccess(Unknown Source)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.defineClassHelper(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.access$100(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Unknown Source)
at sun.plugin2.applet.JNLP2ClassLoader.findClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.defineClassHelper(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.access$100(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Unknown Source)
at sun.plugin2.applet.JNLP2ClassLoader.findClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at javafx.scene.control.Control.loadClass(Control.java:120)
at javafx.scene.control.Control.loadSkinClass(Control.java:1021)
at javafx.scene.control.Control.access$500(Control.java:70)
at javafx.scene.control.Control$12.invalidated(Control.java:972)
at javafx.beans.property.StringPropertyBase.markInvalid(StringPropertyBase.java:127)
at javafx.beans.property.StringPropertyBase.set(StringPropertyBase.java:161)
at com.sun.javafx.css.StyleableStringProperty.set(StyleableStringProperty.java:71)
at javafx.scene.control.Control$12.set(Control.java:964)
at com.sun.javafx.css.StyleableStringProperty.applyStyle(StyleableStringProperty.java:59)
at com.sun.javafx.css.StyleableStringProperty.applyStyle(StyleableStringProperty.java:31)
at com.sun.javafx.css.StyleableProperty.set(StyleableProperty.java:70)
at com.sun.javafx.css.StyleHelper.transitionToState(StyleHelper.java:902)
at javafx.scene.Node.impl_processCSS(Node.java:7415)
at javafx.scene.Parent.impl_processCSS(Parent.java:1146)
at javafx.scene.control.Control.impl_processCSS(Control.java:1154)
at javafx.scene.Parent.impl_processCSS(Parent.java:1153)
at javafx.scene.Parent.impl_processCSS(Parent.java:1153)
at javafx.scene.Parent.impl_processCSS(Parent.java:1153)
at javafx.scene.Parent.impl_processCSS(Parent.java:1153)
at javafx.scene.Parent.impl_processCSS(Parent.java:1153)
at javafx.scene.Parent.impl_processCSS(Parent.java:1153)
at javafx.scene.Parent.impl_processCSS(Parent.java:1153)
at javafx.scene.Parent.impl_processCSS(Parent.java:1153)
at javafx.scene.control.Control.impl_processCSS(Control.java:1154)
at javafx.scene.Parent.impl_processCSS(Parent.java:1153)
at javafx.scene.Parent.impl_processCSS(Parent.java:1153)
at javafx.scene.Parent.impl_processCSS(Parent.java:1153)
at javafx.scene.control.Control.impl_processCSS(Control.java:1154)
at javafx.scene.Node.processCSS(Node.java:7383)
at javafx.scene.Node.processCSS(Node.java:7377)
at javafx.scene.Node.processCSS(Node.java:7377)
at javafx.scene.Node.processCSS(Node.java:7377)
at javafx.scene.Node.processCSS(Node.java:7377)
at javafx.scene.Node.processCSS(Node.java:7377)
at javafx.scene.Node.processCSS(Node.java:7377)
at javafx.scene.Node.processCSS(Node.java:7377)
at javafx.scene.Scene.doCSSPass(Scene.java:446)
at javafx.scene.Scene.access$3800(Scene.java:170)
at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2202)
at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:363)
at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:460)
at com.sun.javafx.tk.quantum.QuantumToolkit$9.run(QuantumToolkit.java:329)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:29)
at com.sun.glass.ui.win.WinApplication$3$1.run(WinApplication.java:73)
at java.lang.Thread.run(Unknown Source)

SEVERE: javafx.scene.control.Control impl_processCSS The -fx-skin property has not been defined in CSS for CalendarPicker@6573f3[styleClass=CalendarPicker]
SEVERE: javafx.scene.control.Control impl_processCSS The -fx-skin property has not been defined in CSS for CalendarPicker@6573f3[styleClass=CalendarPicker]


Reply all
Reply to author
Forward
0 new messages