JDK-6289722 : Proxy detection throws exceptions
  • Type: Bug
  • Component: deploy
  • Sub-Component: webstart
  • Affected Version: 5.0
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • OS: windows_xp
  • CPU: x86
  • Submitted: 2005-06-23
  • Updated: 2010-04-02
  • Resolved: 2005-07-18
Related Reports
Duplicate :  
Description
FULL PRODUCT VERSION :
java version "1.5.0_03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_03-b07)
Java HotSpot(TM) Client VM (build 1.5.0_03-b07, mixed mode, sharing)

ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows XP [Version 5.1.2600]

A DESCRIPTION OF THE PROBLEM :
there is a bug in com/sun/deploy/net/proxy/WNetscape4ProxyConfig.java, inside of the getNSVersion() method.:

==========

private static float getNSVersion() {
  String path = "Software\\Netscape\\Netscape Navigator";
  String s = WinRegistry.getString(WinRegistry.HKEY_LOCAL_MACHINE,
                                                             path,
                                                             "CurrentVersion");
int start = -1, end = -1;

/* Find the beginning and the end of the version number. */
for(int i = 0; (i < s.length()) && (end == -1); i++) {

...

}
============

My machine doesn't have that registry key so your call to WinRegistry.getString assigns 'null' to s.  But then you go ahead and call s.length() in the for loop.

This of course throws a NullPointerException


ERROR MESSAGES/STACK TRACES THAT OCCUR :
Java Web Start 1.5.0_03
Using JRE version 1.5.0_03 Java HotSpot(TM) Client VM
User home directory = C:\Documents and Settings\TEMP
----------------------------------------------------
c:   clear console window
f:   finalize objects on finalization queue
g:   garbage collect
h:   display this help message
m:   print memory usage
o:   trigger logging
p:   reload proxy configuration
q:   hide console
r:   reload policy configuration
s:   dump system and deployment properties
t:   dump thread list
0-5: set trace level to <n>
----------------------------------------------------
java.lang.NullPointerException
	at com.sun.deploy.net.proxy.WNetscape4ProxyConfig.getNSVersion(Unknown Source)
	at com.sun.deploy.net.proxy.WNetscape4ProxyConfig.getBrowserProxyInfo(Unknown Source)
	at com.sun.deploy.net.proxy.WDefaultBrowserProxyConfig.getBrowserProxyInfo(Unknown Source)
	at com.sun.deploy.net.proxy.DynamicProxyManager.reset(Unknown Source)
	at com.sun.deploy.net.proxy.DeployProxySelector.reset(Unknown Source)
	at com.sun.javaws.Main.initializeExecutionEnvironment(Unknown Source)
	at com.sun.javaws.Main.main(Unknown Source)
java.lang.NullPointerException
	at com.sun.deploy.net.proxy.DynamicProxyManager.getProxyInfo(Unknown Source)
	at com.sun.deploy.net.proxy.DeployProxySelector.select(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
	at com.sun.javaws.net.BasicNetworkLayer.doRequest(Unknown Source)
	at com.sun.javaws.net.BasicNetworkLayer.doHeadRequest(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.doDownload(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.isUpdateAvailable(Unknown Source)
	at com.sun.javaws.cache.CacheImageLoader$DelayedImageLoader.run(Unknown Source)
java.lang.NullPointerException
	at com.sun.deploy.net.proxy.DynamicProxyManager.getProxyInfo(Unknown Source)
	at com.sun.deploy.net.proxy.DeployProxySelector.select(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
	at com.sun.javaws.net.BasicNetworkLayer.doRequest(Unknown Source)
	at com.sun.javaws.net.BasicNetworkLayer.doHeadRequest(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.doDownload(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.isUpdateAvailable(Unknown Source)
	at com.sun.javaws.LaunchDownload$1.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
java.lang.NullPointerException
	at com.sun.deploy.net.proxy.DynamicProxyManager.getProxyInfo(Unknown Source)
	at com.sun.deploy.net.proxy.DeployProxySelector.select(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
	at com.sun.javaws.net.BasicNetworkLayer.doRequest(Unknown Source)
	at com.sun.javaws.net.BasicNetworkLayer.doHeadRequest(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.doDownload(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.isUpdateAvailable(Unknown Source)
	at com.sun.javaws.LaunchDownload$1.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
java.lang.NullPointerException
	at com.sun.deploy.net.proxy.DynamicProxyManager.getProxyInfo(Unknown Source)
	at com.sun.deploy.net.proxy.DeployProxySelector.select(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
	at com.sun.javaws.net.BasicNetworkLayer.doRequest(Unknown Source)
	at com.sun.javaws.net.BasicNetworkLayer.doHeadRequest(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.doDownload(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.isUpdateAvailable(Unknown Source)
	at com.sun.javaws.LaunchDownload$1.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
java.lang.NullPointerException
	at com.sun.deploy.net.proxy.DynamicProxyManager.getProxyInfo(Unknown Source)
	at com.sun.deploy.net.proxy.DeployProxySelector.select(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
	at com.sun.javaws.net.BasicNetworkLayer.doRequest(Unknown Source)
	at com.sun.javaws.net.BasicNetworkLayer.doHeadRequest(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.doDownload(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.isUpdateAvailable(Unknown Source)
	at com.sun.javaws.LaunchDownload$1.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
java.lang.NullPointerException
	at com.sun.deploy.net.proxy.DynamicProxyManager.getProxyInfo(Unknown Source)
	at com.sun.deploy.net.proxy.DeployProxySelector.select(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
	at com.sun.javaws.net.BasicNetworkLayer.doRequest(Unknown Source)
	at com.sun.javaws.net.BasicNetworkLayer.doHeadRequest(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.doDownload(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.isUpdateAvailable(Unknown Source)
	at com.sun.javaws.LaunchDownload$1.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
java.lang.NullPointerException
	at com.sun.deploy.net.proxy.DynamicProxyManager.getProxyInfo(Unknown Source)
	at com.sun.deploy.net.proxy.DeployProxySelector.select(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
	at com.sun.javaws.net.BasicNetworkLayer.doRequest(Unknown Source)
	at com.sun.javaws.net.BasicNetworkLayer.doHeadRequest(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.doDownload(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.isUpdateAvailable(Unknown Source)
	at com.sun.javaws.LaunchDownload$1.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
java.lang.NullPointerException
	at com.sun.deploy.net.proxy.DynamicProxyManager.getProxyInfo(Unknown Source)
	at com.sun.deploy.net.proxy.DeployProxySelector.select(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
	at com.sun.javaws.net.BasicNetworkLayer.doRequest(Unknown Source)
	at com.sun.javaws.net.BasicNetworkLayer.doHeadRequest(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.doDownload(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.isUpdateAvailable(Unknown Source)
	at com.sun.javaws.LaunchDownload$1.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
java.lang.NullPointerException
	at com.sun.deploy.net.proxy.DynamicProxyManager.getProxyInfo(Unknown Source)
	at com.sun.deploy.net.proxy.DeployProxySelector.select(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
	at com.sun.javaws.net.BasicNetworkLayer.doRequest(Unknown Source)
	at com.sun.javaws.net.BasicNetworkLayer.doHeadRequest(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.doDownload(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.isUpdateAvailable(Unknown Source)
	at com.sun.javaws.LaunchDownload$1.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
java.lang.NullPointerException
	at com.sun.deploy.net.proxy.DynamicProxyManager.getProxyInfo(Unknown Source)
	at com.sun.deploy.net.proxy.DeployProxySelector.select(Unknown Source)
	at java.net.SocksSocketImpl.connect(Unknown Source)
	at java.net.Socket.connect(Unknown Source)
	at java.net.Socket.connect(Unknown Source)
	at java.net.Socket.<init>(Unknown Source)
	at java.net.Socket.<init>(Unknown Source)
	at com.sun.javaws.SplashScreen.hide(Unknown Source)
	at com.sun.javaws.SplashScreen.hide(Unknown Source)
	at com.sun.javaws.util.JavawsDialogListener$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javaws.util.JavawsDialogListener.beforeShow(Unknown Source)
	at com.sun.deploy.util.DialogFactory$11.run(Unknown Source)
	at com.sun.deploy.util.DialogFactory.showDialog(Unknown Source)
	at com.sun.deploy.util.DialogFactory.showOptionDialogImpl(Unknown Source)
	at com.sun.deploy.util.DialogFactory.access$300(Unknown Source)
	at com.sun.deploy.util.DialogFactory$5.execute(Unknown Source)
	at com.sun.deploy.util.DeploySysRun.execute(Unknown Source)
	at com.sun.deploy.util.DialogFactory.showOptionDialog(Unknown Source)
	at com.sun.deploy.util.DialogFactory.showOptionDialog(Unknown Source)
	at com.sun.deploy.security.TrustDeciderDialog.DoModal(Unknown Source)
	at com.sun.deploy.security.TrustDecider$1.execute(Unknown Source)
	at com.sun.deploy.util.DeploySysRun.execute(Unknown Source)
	at com.sun.deploy.security.TrustDecider.showSecurityDialog(Unknown Source)
	at com.sun.deploy.security.TrustDecider.isAllPermissionGranted(Unknown Source)
	at com.sun.javaws.security.AppPolicy.grantUnrestrictedAccess(Unknown Source)
	at com.sun.javaws.LaunchDownload.checkSignedResourcesHelper(Unknown Source)
	at com.sun.javaws.LaunchDownload.checkSignedResources(Unknown Source)
	at com.sun.javaws.Launcher.continueLaunch(Unknown Source)
	at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)
	at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)
	at com.sun.javaws.Launcher.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

REPRODUCIBILITY :
This bug can be reproduced always.
###@###.### 2005-06-23 03:28:10 GMT

Comments
EVALUATION This is a duplicate of #6267930 that has been delivered for mustang. Bug #2127341 is to get the fix backported to Tiger. ###@###.### 2005-07-18 19:34:25 GMT
18-07-2005