This is a fully reproducible bug:
The http://jogamp.org/deployment/jogamp-current/jogl-demos/jogl-newt-applet-runner-angelesgl2es1.html applet fails to initialize when using Hotspot, it runs fine using JamVM thus i belive the root cause is inside the OpenJDK Hotspot JVM.
Tested on two different systems A and B with the same outcome thus I think we can rule out bugs in IcedTea-web and the ARM Thumb2 JIT, see below:
Runs OK using jamvm:
chromium-browser http://jogamp.org/deployment/jogamp-current/jogl-demos/jogl-newt-applet-runner-angelesgl2es1.html
...
java version "1.7.0_07"
OpenJDK Runtime Environment (IcedTea7 2.3.2) (7u7-2.3.2a-1ubuntu1)
JamVM (build 1.6.0-devel, inline-threaded interpreter with stack-caching)
Unable to use Firefox's proxy settings. Using "DIRECT" as proxy type.
NvRmPrivGetChipIdStub: Could not read Tegra chip id/rev
Expected on kernels without Tegra3 support, using Tegra2
Loading GLESv2lib libGLESv2.so.2
Library for API 1 exposes function not wrapped: glPointSizePointerOES
class demos.es1.angeles.AngelesGL has no 'window' field
class demos.es1.angeles.AngelesGL has no 'glWindow' field
AngelesGL: jogamp.opengl.es1.GLES1Impl@41679930
33 s: 300 f / 33790 ms, 8.8 fps, 112 ms/f; total: 300 f, 8.8 fps, 112 ms/f
66 s: 300 f / 32722 ms, 9.1 fps, 109 ms/f; total: 600 f, 9.0 fps, 110 ms/f
98 s: 300 f / 32422 ms, 9.2 fps, 108 ms/f; total: 900 f, 9.0 fps, 109 ms/f
111 s: 300 f / 12335 ms, 24.3 fps, 41 ms/f; total: 1200 f, 10.7 fps, 92 ms/f
117 s: 300 f / 5818 ms, 51.5 fps, 19 ms/f; total: 1500 f, 12.8 fps, 78 ms/f
Fails using Hotspot (armhf thumb2 jit):
chromium-browser http://jogamp.org/deployment/jogamp-current/jogl-demos/jogl-newt-applet-runner-angelesgl2es1.html
java version "1.7.0_07"
OpenJDK Runtime Environment (IcedTea7 2.3.2) (7u7-2.3.2a-1ubuntu1)
OpenJDK Zero VM (build 22.0-b10, mixed mode)
Unable to use Firefox's proxy settings. Using "DIRECT" as proxy type.
[12:12:7511309852:ERROR:nss_util.cc(452)] Error initializing NSS without a persistent database: libsoftokn3.so: cannot open shared object file: Permission denied
Exception in thread "Applet" java.lang.ExceptionInInitializerError
at com.jogamp.common.util.PropertyAccess.addTrustedPrefix(PropertyAccess.java:52)
at jogamp.newt.Debug.<clinit>(Debug.java:52)
at com.jogamp.newt.awt.applet.JOGLNewtAppletBase.<clinit>(JOGLNewtAppletBase.java:58)
at com.jogamp.newt.awt.applet.JOGLNewtApplet1Run.<clinit>(JOGLNewtApplet1Run.java:95)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at java.lang.Class.newInstance0(Class.java:372)
at java.lang.Class.newInstance(Class.java:325)
at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:726)
at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:676)
at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:886)
Caused by: java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "getProtectionDomain")
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:366)
at java.security.AccessController.checkPermission(AccessController.java:555)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at net.sourceforge.jnlp.runtime.JNLPSecurityManager.checkPermission(JNLPSecurityManager.java:284)
at java.lang.Class.getProtectionDomain(Class.java:2123)
at com.jogamp.common.util.SecurityUtil$2.run(SecurityUtil.java:52)
at com.jogamp.common.util.SecurityUtil$2.run(SecurityUtil.java:50)
at java.security.AccessController.doPrivileged(Native Method)
at com.jogamp.common.util.SecurityUtil.getCerts(SecurityUtil.java:50)
at com.jogamp.common.util.SecurityUtil.<clinit>(SecurityUtil.java:46)
... 13 more
java.lang.NullPointerException
at net.sourceforge.jnlp.NetxPanel.runLoader(NetxPanel.java:154)
at sun.applet.AppletPanel.run(AppletPanel.java:379)
at java.lang.Thread.run(Thread.java:722)
java.lang.NullPointerException
at sun.applet.AppletPanel.run(AppletPanel.java:429)
at java.lang.Thread.run(Thread.java:722)
[16:16:7512497608:ERROR:nss_util.cc(452)] Error initializing NSS without a persistent database: libsoftokn3.so: cannot open shared object file: Permission denied
[20:20:7513434520:ERROR:nss_util.cc(452)] Error initializing NSS without a persistent database: libsoftokn3.so: cannot open shared object file: Permission denied
Runs OK using jamvm:
firefox http://jogamp.org/deployment/jogamp-current/jogl-demos/jogl-newt-applet-runner-angelesgl2es1.html
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.5) (6b24-1.11.5-0ubuntu1~12.04.1)
JamVM (build 1.6.0-devel, inline-threaded interpreter with stack-caching)
libEGL warning: failed to create a pipe screen for i965
class demos.es1.angeles.AngelesGL has no 'window' field
class demos.es1.angeles.AngelesGL has no 'glWindow' field
AngelesGL: jogamp.opengl.gl4.GL4bcImpl@99a96018
4 s: 300 f / 4990 ms, 60.1 fps, 16 ms/f; total: 300 f, 60.1 fps, 16 ms/f
Fails using Hotspot:
firefox http://jogamp.org/deployment/jogamp-current/jogl-demos/jogl-newt-applet-runner-angelesgl2es1.html
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.5) (6b24-1.11.5-0ubuntu1~12.04.1)
OpenJDK Server VM (build 20.0-b12, mixed mode)
Exception in thread "Applet" java.lang.ExceptionInInitializerError
at com.jogamp.common.util.PropertyAccess.addTrustedPrefix(PropertyAccess.java:52)
at jogamp.newt.Debug.<clinit>(Debug.java:52)
at com.jogamp.newt.awt.applet.JOGLNewtAppletBase.<clinit>(JOGLNewtAppletBase.java:58)
at com.jogamp.newt.awt.applet.JOGLNewtApplet1Run.<clinit>(JOGLNewtApplet1Run.java:95)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
at java.lang.Class.newInstance0(Class.java:372)
at java.lang.Class.newInstance(Class.java:325)
at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:726)
at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:676)
at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:886)
Caused by: java.security.AccessControlException: access denied (java.lang.RuntimePermission getProtectionDomain)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:393)
at java.security.AccessController.checkPermission(AccessController.java:558)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at net.sourceforge.jnlp.runtime.JNLPSecurityManager.checkPermission(JNLPSecurityManager.java:284)
at java.lang.Class.getProtectionDomain(Class.java:2123)
at com.jogamp.common.util.SecurityUtil$2.run(SecurityUtil.java:52)
at com.jogamp.common.util.SecurityUtil$2.run(SecurityUtil.java:50)
at java.security.AccessController.doPrivileged(Native Method)
at com.jogamp.common.util.SecurityUtil.getCerts(SecurityUtil.java:50)
at com.jogamp.common.util.SecurityUtil.<clinit>(SecurityUtil.java:46)
... 13 more
java.lang.NullPointerException
at net.sourceforge.jnlp.NetxPanel.runLoader(NetxPanel.java:154)
at sun.applet.AppletPanel.run(AppletPanel.java:380)
at java.lang.Thread.run(Thread.java:679)
java.lang.NullPointerException
at sun.applet.AppletPanel.run(AppletPanel.java:430)
at java.lang.Thread.run(Thread.java:679)
This is a fully reproducible bug: jogamp. org/deployment/ jogamp- current/ jogl-demos/ jogl-newt- applet- runner- angelesgl2es1. html applet fails to initialize when using Hotspot, it runs fine using JamVM thus i belive the root cause is inside the OpenJDK Hotspot JVM.
The http://
Tested on two different systems A and B with the same outcome thus I think we can rule out bugs in IcedTea-web and the ARM Thumb2 JIT, see below:
Testcase: jogamp. org/deployment/ jogamp- current/ jogl-demos/ jogl-newt- applet- runner- angelesgl2es1. html jogamp. org/deployment/ jogamp- current/ jogl-demos/ jogl-newt- applet- runner- angelesgl2es1. html
chromium-browser http://
or
firefox http://
System A: 3.2a-1ubuntu1)
OS: Ubuntu 12.10 32bit armhf
Machine: Toshiba AC100-10D
IcedTea-Version: 1.3
OpenJDK Runtime Environment (IcedTea7 2.3.2) (7u7-2.
Chromium: 22.0.1229.94 (Developer Build 161065) Ubuntu 12.10
Runs OK using jamvm: jogamp. org/deployment/ jogamp- current/ jogl-demos/ jogl-newt- applet- runner- angelesgl2es1. html 3.2a-1ubuntu1) IdStub: Could not read Tegra chip id/rev terOES angeles. AngelesGL has no 'window' field angeles. AngelesGL has no 'glWindow' field opengl. es1.GLES1Impl@ 41679930
chromium-browser http://
...
java version "1.7.0_07"
OpenJDK Runtime Environment (IcedTea7 2.3.2) (7u7-2.
JamVM (build 1.6.0-devel, inline-threaded interpreter with stack-caching)
Unable to use Firefox's proxy settings. Using "DIRECT" as proxy type.
NvRmPrivGetChip
Expected on kernels without Tegra3 support, using Tegra2
Loading GLESv2lib libGLESv2.so.2
Library for API 1 exposes function not wrapped: glPointSizePoin
class demos.es1.
class demos.es1.
AngelesGL: jogamp.
33 s: 300 f / 33790 ms, 8.8 fps, 112 ms/f; total: 300 f, 8.8 fps, 112 ms/f
66 s: 300 f / 32722 ms, 9.1 fps, 109 ms/f; total: 600 f, 9.0 fps, 110 ms/f
98 s: 300 f / 32422 ms, 9.2 fps, 108 ms/f; total: 900 f, 9.0 fps, 109 ms/f
111 s: 300 f / 12335 ms, 24.3 fps, 41 ms/f; total: 1200 f, 10.7 fps, 92 ms/f
117 s: 300 f / 5818 ms, 51.5 fps, 19 ms/f; total: 1500 f, 12.8 fps, 78 ms/f
Fails using Hotspot (armhf thumb2 jit): jogamp. org/deployment/ jogamp- current/ jogl-demos/ jogl-newt- applet- runner- angelesgl2es1. html 3.2a-1ubuntu1) 7511309852: ERROR:nss_ util.cc( 452)] Error initializing NSS without a persistent database: libsoftokn3.so: cannot open shared object file: Permission denied ExceptionInInit ializerError common. util.PropertyAc cess.addTrusted Prefix( PropertyAccess. java:52) newt.Debug. <clinit> (Debug. java:52) newt.awt. applet. JOGLNewtAppletB ase.<clinit> (JOGLNewtApplet Base.java: 58) newt.awt. applet. JOGLNewtApplet1 Run.<clinit> (JOGLNewtApplet 1Run.java: 95) NativeConstruct orAccessorImpl. newInstance0( Native Method) NativeConstruct orAccessorImpl. newInstance( NativeConstruct orAccessorImpl. java:57) DelegatingConst ructorAccessorI mpl.newInstance (DelegatingCons tructorAccessor Impl.java: 45) reflect. Constructor. newInstance( Constructor. java:525) Class.newInstan ce0(Class. java:372) Class.newInstan ce(Class. java:325) .jnlp.Launcher. createApplet( Launcher. java:726) .jnlp.Launcher. getApplet( Launcher. java:676) .jnlp.Launcher$ TgThread. run(Launcher. java:886) AccessControlEx ception: access denied ("java. lang.RuntimePer mission" "getProtectionD omain") AccessControlCo ntext.checkPerm ission( AccessControlCo ntext.java: 366) AccessControlle r.checkPermissi on(AccessContro ller.java: 555) SecurityManager .checkPermissio n(SecurityManag er.java: 549) .jnlp.runtime. JNLPSecurityMan ager.checkPermi ssion(JNLPSecur ityManager. java:284) Class.getProtec tionDomain( Class.java: 2123) common. util.SecurityUt il$2.run( SecurityUtil. java:52) common. util.SecurityUt il$2.run( SecurityUtil. java:50) AccessControlle r.doPrivileged( Native Method) common. util.SecurityUt il.getCerts( SecurityUtil. java:50) common. util.SecurityUt il.<clinit> (SecurityUtil. java:46) NullPointerExce ption .jnlp.NetxPanel .runLoader( NetxPanel. java:154) AppletPanel. run(AppletPanel .java:379) Thread. run(Thread. java:722) NullPointerExce ption AppletPanel. run(AppletPanel .java:429) Thread. run(Thread. java:722) 7512497608: ERROR:nss_ util.cc( 452)] Error initializing NSS without a persistent database: libsoftokn3.so: cannot open shared object file: Permission denied 7513434520: ERROR:nss_ util.cc( 452)] Error initializing NSS without a persistent database: libsoftokn3.so: cannot open shared object file: Permission denied
chromium-browser http://
java version "1.7.0_07"
OpenJDK Runtime Environment (IcedTea7 2.3.2) (7u7-2.
OpenJDK Zero VM (build 22.0-b10, mixed mode)
Unable to use Firefox's proxy settings. Using "DIRECT" as proxy type.
[12:12:
Exception in thread "Applet" java.lang.
at com.jogamp.
at jogamp.
at com.jogamp.
at com.jogamp.
at sun.reflect.
at sun.reflect.
at sun.reflect.
at java.lang.
at java.lang.
at java.lang.
at net.sourceforge
at net.sourceforge
at net.sourceforge
Caused by: java.security.
at java.security.
at java.security.
at java.lang.
at net.sourceforge
at java.lang.
at com.jogamp.
at com.jogamp.
at java.security.
at com.jogamp.
at com.jogamp.
... 13 more
java.lang.
at net.sourceforge
at sun.applet.
at java.lang.
java.lang.
at sun.applet.
at java.lang.
[16:16:
[20:20:
System B: 11.5-0ubuntu1~ 12.04.1)
Ubuntu 12.04 32bit IA32
Machine: Fujitsu ESPRIMO-P7935
IcedTea-Web Plugin (using IcedTea-Web 1.2 (1.2-2ubuntu1.2))
OpenJDK Runtime Environment (IcedTea6 1.11.5) (6b24-1.
Firefox 16.0.2
Runs OK using jamvm: jogamp. org/deployment/ jogamp- current/ jogl-demos/ jogl-newt- applet- runner- angelesgl2es1. html 11.5-0ubuntu1~ 12.04.1) angeles. AngelesGL has no 'window' field angeles. AngelesGL has no 'glWindow' field opengl. gl4.GL4bcImpl@ 99a96018
firefox http://
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.5) (6b24-1.
JamVM (build 1.6.0-devel, inline-threaded interpreter with stack-caching)
libEGL warning: failed to create a pipe screen for i965
class demos.es1.
class demos.es1.
AngelesGL: jogamp.
4 s: 300 f / 4990 ms, 60.1 fps, 16 ms/f; total: 300 f, 60.1 fps, 16 ms/f
Fails using Hotspot: jogamp. org/deployment/ jogamp- current/ jogl-demos/ jogl-newt- applet- runner- angelesgl2es1. html 11.5-0ubuntu1~ 12.04.1) ExceptionInInit ializerError common. util.PropertyAc cess.addTrusted Prefix( PropertyAccess. java:52) newt.Debug. <clinit> (Debug. java:52) newt.awt. applet. JOGLNewtAppletB ase.<clinit> (JOGLNewtApplet Base.java: 58) newt.awt. applet. JOGLNewtApplet1 Run.<clinit> (JOGLNewtApplet 1Run.java: 95) NativeConstruct orAccessorImpl. newInstance0( Native Method) NativeConstruct orAccessorImpl. newInstance( NativeConstruct orAccessorImpl. java:57) DelegatingConst ructorAccessorI mpl.newInstance (DelegatingCons tructorAccessor Impl.java: 45) reflect. Constructor. newInstance( Constructor. java:532) Class.newInstan ce0(Class. java:372) Class.newInstan ce(Class. java:325) .jnlp.Launcher. createApplet( Launcher. java:726) .jnlp.Launcher. getApplet( Launcher. java:676) .jnlp.Launcher$ TgThread. run(Launcher. java:886) AccessControlEx ception: access denied (java.lang. RuntimePermissi on getProtectionDo main) AccessControlCo ntext.checkPerm ission( AccessControlCo ntext.java: 393) AccessControlle r.checkPermissi on(AccessContro ller.java: 558) SecurityManager .checkPermissio n(SecurityManag er.java: 549) .jnlp.runtime. JNLPSecurityMan ager.checkPermi ssion(JNLPSecur ityManager. java:284) Class.getProtec tionDomain( Class.java: 2123) common. util.SecurityUt il$2.run( SecurityUtil. java:52) common. util.SecurityUt il$2.run( SecurityUtil. java:50) AccessControlle r.doPrivileged( Native Method) common. util.SecurityUt il.getCerts( SecurityUtil. java:50) common. util.SecurityUt il.<clinit> (SecurityUtil. java:46) NullPointerExce ption .jnlp.NetxPanel .runLoader( NetxPanel. java:154) AppletPanel. run(AppletPanel .java:380) Thread. run(Thread. java:679) NullPointerExce ption AppletPanel. run(AppletPanel .java:430) Thread. run(Thread. java:679)
firefox http://
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.5) (6b24-1.
OpenJDK Server VM (build 20.0-b12, mixed mode)
Exception in thread "Applet" java.lang.
at com.jogamp.
at jogamp.
at com.jogamp.
at com.jogamp.
at sun.reflect.
at sun.reflect.
at sun.reflect.
at java.lang.
at java.lang.
at java.lang.
at net.sourceforge
at net.sourceforge
at net.sourceforge
Caused by: java.security.
at java.security.
at java.security.
at java.lang.
at net.sourceforge
at java.lang.
at com.jogamp.
at com.jogamp.
at java.security.
at com.jogamp.
at com.jogamp.
... 13 more
java.lang.
at net.sourceforge
at sun.applet.
at java.lang.
java.lang.
at sun.applet.
at java.lang.