| Summary: | AccessControlException using jogl.debug.TextRenderer in applet | ||
|---|---|---|---|
| Product: | [JogAmp] Jogl | Reporter: | martinezmj |
| Component: | applet | Assignee: | Sven Gothel <sgothel> |
| Status: | RESOLVED FIXED | ||
| Severity: | major | ||
| Priority: | --- | ||
| Version: | 2 | ||
| Hardware: | All | ||
| OS: | all | ||
| Type: | --- | SCM Refs: |
gluegen d27d802b4e11745969909229a2d1f0963c74ce3a
joal b4fbbc98929c56b9f82815a50dacb02796d9d252
jogl 8ac3f344aded383ca9a3083a877af7bfdf6e1e48
|
| Workaround: | TRUE | ||
Calling 'Debug.isPropertyDefined(propName, default)' may be 'optimized' to 'PropertyAccess.isPropertyDefined(propName, default)', which would skip the modules Debug's class initialization. Iff that happens, an AccessControlException may happen, due to requesting an insecure property, since modules own Debug class has not been added it's trusted prefixes from within it's init block yet. This seems to be a bug of the JVM .. to me, however .. the above description is the only able to explain the issue at hand. .. Naturally, Debug class should be initialized before calling it's parent isPropertyDefined(..)! Fix calls Debug class own static methods, either Debug.initSingleton() or Debug.debug(), before calling 'isPropertyDefined(propName, default)'. +++ Also mark Debug class static methods final! +++ Marked as a workaround, since a JVM bug is assumed! |
Any use of com.jogamp.opengl.util.awt.TextRenderer in an applet results in a AccessControlException when the TextRenderer class loads. Caused by: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "jogl.debug.TextRenderer" "read") at java.security.AccessControlContext.checkPermission(AccessControlContext.java:372) at java.security.AccessController.checkPermission(AccessController.java:559) at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) at sun.plugin2.applet.AWTAppletSecurityManager.checkPermission(Unknown Source) at java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1302) at java.lang.System.getProperty(System.java:707) at com.jogamp.common.util.PropertyAccess.getProperty(PropertyAccess.java:146) at com.jogamp.common.util.PropertyAccess.isPropertyDefined(PropertyAccess.java:109) at com.jogamp.opengl.util.awt.TextRenderer.<clinit>(TextRenderer.java:131) ... 43 more JOGL being loaded via http://jogamp.org/deployment/jogamp-current/jar/jogl-all.jar. These results are for an unsigned applet. Setting property "jnlp.jogl.debug.TextRenderer" in the JNLP did not fix the issue. I see the same issue in both Mac and Windows. See this thread for more discussion of this issue: http://forum.jogamp.org/AccessControlException-using-jogl-debug-TextRenderer-in-applet-td4029580.html