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: Testcase: chromium-browser http://jogamp.org/deployment/jogamp-current/jogl-demos/jogl-newt-applet-runner-angelesgl2es1.html or firefox http://jogamp.org/deployment/jogamp-current/jogl-demos/jogl-newt-applet-runner-angelesgl2es1.html System A: OS: Ubuntu 12.10 32bit armhf Machine: Toshiba AC100-10D IcedTea-Version: 1.3 OpenJDK Runtime Environment (IcedTea7 2.3.2) (7u7-2.3.2a-1ubuntu1) Chromium: 22.0.1229.94 (Developer Build 161065) Ubuntu 12.10 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.(Debug.java:52) at com.jogamp.newt.awt.applet.JOGLNewtAppletBase.(JOGLNewtAppletBase.java:58) at com.jogamp.newt.awt.applet.JOGLNewtApplet1Run.(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.(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 System B: 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.11.5-0ubuntu1~12.04.1) Firefox 16.0.2 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.(Debug.java:52) at com.jogamp.newt.awt.applet.JOGLNewtAppletBase.(JOGLNewtAppletBase.java:58) at com.jogamp.newt.awt.applet.JOGLNewtApplet1Run.(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.(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)