JDK-6649371 : JNLP Association (per-user) does not work in Vista
  • Type: Bug
  • Component: deploy
  • Sub-Component: webstart
  • Affected Version: 6u10
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2008-01-11
  • Updated: 2010-09-24
  • Resolved: 2009-03-09
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
6u14 b03Fixed 7Fixed
JNLP file association does not work in Vista. Registry cannot be created. See comments for tests cases.

SUGGESTED FIX http://web-east.east.sun.com/www/webrevs/ngthomas/6649371/webrev/

EVALUATION more investigation show that per-user level association does not require HKLM keys - HKCU is sufficient. Java Web Start does have enough permission to update HKCU keys in Vista. Fix in 6u14 system level association is more complex though (HKLM) - will open new bug for that.

EVALUATION to register association , we need to write to HKLM registry branch, which java web start won't have permission to do so on Vista. Problem exists in older JRE as well, e.g I tested on 6.0 com.sun.deploy.association.RegisterFailedException: Key SOFTWARE\Classes\MIME\Da tabase\Content Type\application/x-dmt creation error! at com.sun.deploy.association.utility.WinRegistryUtil.regCreateKeyEx(Unk nown Source) at com.sun.deploy.association.utility.WinRegistryUtil.addMimeType(Unknow n Source) at com.sun.deploy.association.utility.WinAppAssociationWriter.registerAs sociation(Unknown Source) at com.sun.deploy.association.AssociationService.registerSystemAssociati on(Unknown Source) at com.sun.javaws.WinInstallHandler.registerAssociationInternal(Unknown Source) at com.sun.javaws.LocalInstallHandler.registerAssociation(Unknown Source ) at com.sun.javaws.LocalInstallHandler.createAssociations(Unknown Source) at com.sun.javaws.LocalInstallHandler.performIntegration(Unknown Source) at com.sun.javaws.LocalInstallHandler.install(Unknown Source) at com.sun.javaws.Launcher.notifyLocalInstallHandler(Unknown Source) at com.sun.javaws.Launcher.prepareLaunchFile(Unknown Source) at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source) at com.sun.javaws.Launcher.launch(Unknown Source) at com.sun.javaws.Main.launchApp(Unknown Source) at com.sun.javaws.Main.continueInSecureThread(Unknown Source) at com.sun.javaws.Main$1.run(Unknown Source) at java.lang.Thread.run(Unknown Source) we probably need to use jbroker to create the keys