Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Bug Database
Bug Detail
Quick Lists
Top 25 Bugs
Top 25 RFE's
Recently Closed Bugs
Printable Page Printable Page


Bug Database
Bug ID: 6761053
Votes 0
Synopsis Desktop shortcuts for dragged applets from HTTPS servers do not relaunch and can not be customized
Category java_plugin:plugin2
Reported Against
Release Fixed 6u11(b03)
State 10-Fix Delivered, bug
Priority: 2-High
Related Bugs 6740523 , 6753665 , 6755573
Submit Date 18-OCT-2008
Description
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)
Posted Date : 2008-10-18 20:05:37.0

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.
Posted Date : 2008-10-19 00:01:20.0
Work Around
N/A
Evaluation
Problem: relaunching an applet which is hosted on a https server fails with a NPE.  Closing the relaunched applet results in AccessControlException.

Fix: in JNLP2Viewer
for the NPE: pass in a default NoopExecutionContext to Applet2Environment.initialize() so that the Applet2BrowserService has an execution context;
for AccessControlException: add a doPrivileged block for the System.exit(0) call.
Posted Date : 2008-10-20 18:07:16.0
Comments
  
  Include a link with my name & email   


PLEASE NOTE: JDK6 is formerly known as Project Mustang