A user pointed out on the java.net forums ( http://forums.java.net/jive/message.jspa?messageID=309391#309391 ) that with the 6u10 GA bits, relaunching of dragged-out applets from their desktop shortcuts is completely broken. Attempting to relaunch the simple draggable applet example from http://jdk6.dev.java.net/plugin2/ from its desktop shortcut results in the following exception:
Exception in thread "main" java.lang.ExceptionInInitializerError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at java.net.URL.getURLStreamHandler(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at com.sun.deploy.cache.Cache.getLocalApplicationProperties(Unknown Source)
at sun.plugin2.applet.viewer.JNLP2Viewer.run(Unknown Source)
at sun.plugin2.applet.viewer.JNLP2Viewer.main(Unknown Source)
Caused by: java.lang.NullPointerException
at sun.plugin2.applet.Applet2BrowserService.isIExplorer(Unknown Source)
at com.sun.deploy.security.BrowserKeystore.registerSecurityProviders(Unknown Source)
at com.sun.deploy.net.protocol.https.Handler$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.deploy.net.protocol.https.Handler.<clinit>(Unknown Source)
... 9 more
This failure is still reproducible with the 6u11 nightly builds.
Additionally, with a later build of the JRE, the following exception has been seen upon relaunch of a desktop shortcut and attempted shutdown of a dragged-out applet, because of a lack of an AccessController.doPrivileged() around the System.exit(0) call.
Exception in thread "AWT-EventQueue-4" java.security.AccessControlException: access denied (java.lang.RuntimePermission exitVM.0)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
at java.security.AccessController.checkPermission(AccessController.java:546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.SecurityManager.checkExit(SecurityManager.java:744)
at java.lang.Runtime.exit(Runtime.java:88)
at java.lang.System.exit(System.java:906)
at sun.plugin2.applet.viewer.JNLP2Viewer$1$1.appletExternalWindowClosed(JNLP2Viewer.java:298)
at sun.plugin2.applet.DragHelper$PerAppletInfo$CloseListener.actionPerformed(DragHelper.java:672)
at DragExample$1.mouseClicked(DragExample.java:75)
at java.awt.Component.processMouseEvent(Component.java:6137)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5899)
at java.awt.Container.processEvent(Container.java:2023)
at java.awt.Component.dispatchEventImpl(Component.java:4501)
at java.awt.Container.dispatchEventImpl(Container.java:2081)
at java.awt.Component.dispatchEvent(Component.java:4331)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4301)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3974)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3895)
at java.awt.Container.dispatchEventImpl(Container.java:2067)
at java.awt.Component.dispatchEvent(Component.java:4331)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
The SecurityException upon closing an unsigned applet relaunched from a desktop shortcut which customizes the setAppletCloseListener behavior will also be inadvertently fixed by 6753665 in 6u12.
Exception in thread "main" java.lang.ExceptionInInitializerError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at java.net.URL.getURLStreamHandler(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at com.sun.deploy.cache.Cache.getLocalApplicationProperties(Unknown Source)
at sun.plugin2.applet.viewer.JNLP2Viewer.run(Unknown Source)
at sun.plugin2.applet.viewer.JNLP2Viewer.main(Unknown Source)
Caused by: java.lang.NullPointerException
at sun.plugin2.applet.Applet2BrowserService.isIExplorer(Unknown Source)
at com.sun.deploy.security.BrowserKeystore.registerSecurityProviders(Unknown Source)
at com.sun.deploy.net.protocol.https.Handler$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.deploy.net.protocol.https.Handler.<clinit>(Unknown Source)
... 9 more
This failure is still reproducible with the 6u11 nightly builds.
Additionally, with a later build of the JRE, the following exception has been seen upon relaunch of a desktop shortcut and attempted shutdown of a dragged-out applet, because of a lack of an AccessController.doPrivileged() around the System.exit(0) call.
Exception in thread "AWT-EventQueue-4" java.security.AccessControlException: access denied (java.lang.RuntimePermission exitVM.0)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
at java.security.AccessController.checkPermission(AccessController.java:546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.SecurityManager.checkExit(SecurityManager.java:744)
at java.lang.Runtime.exit(Runtime.java:88)
at java.lang.System.exit(System.java:906)
at sun.plugin2.applet.viewer.JNLP2Viewer$1$1.appletExternalWindowClosed(JNLP2Viewer.java:298)
at sun.plugin2.applet.DragHelper$PerAppletInfo$CloseListener.actionPerformed(DragHelper.java:672)
at DragExample$1.mouseClicked(DragExample.java:75)
at java.awt.Component.processMouseEvent(Component.java:6137)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5899)
at java.awt.Container.processEvent(Container.java:2023)
at java.awt.Component.dispatchEventImpl(Component.java:4501)
at java.awt.Container.dispatchEventImpl(Container.java:2081)
at java.awt.Component.dispatchEvent(Component.java:4331)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4301)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3974)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3895)
at java.awt.Container.dispatchEventImpl(Container.java:2067)
at java.awt.Component.dispatchEvent(Component.java:4331)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
The SecurityException upon closing an unsigned applet relaunched from a desktop shortcut which customizes the setAppletCloseListener behavior will also be inadvertently fixed by 6753665 in 6u12.
- duplicates
-
JDK-6755573 Draggable applet restart from desktop fails
- Closed
- relates to
-
JDK-6753665 Applet.stop() not called when launching dragged applet from desktop
- Closed
-
JDK-6740523 DnD: should pick up codebase automatically for relaunches of dragged-out JNLP applets
- Closed