FULL PRODUCT VERSION :
javaws from 1.6.0_03-b05
ADDITIONAL OS VERSION INFORMATION :
SunOS zeus 5.8 Generic_117350-41 sun4u sparc SUNW,Sun-Blade-1500
SunOS horayser2 5.10 Generic_127111-01 sun4u sparc SUNW,Sun-Fire-V445
A DESCRIPTION OF THE PROBLEM :
Web start is picking up old proxy settings from the user's Firefox prefs.js file despite the fact that Firefox is configured for direct connection to the internet (i.e. no proxy).
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Sun X4200M2 ILOM card (serving up a JavaRConsole remote control application) and Sun Sparc desktop (acting as a web browsing client) machine, both on the same 255.255.255.0 network.
Firefox on client machine used to be configured with proxy settings, but configuration has since been changed by selecting the "Direct connection to the Internet" radio button. Note that in this circumstance, Firefox *LEAVES* most of the original proxy settings in its prefs.js file. The one exception is the:
user_pref("network.proxy.type", 1);
entry which is deleted. In other words, the *ABSENCE* of the network.proxy.type in prefs.js implies that there is no proxy (i.e. that "no proxy" is the default).
$HOME/.java deleted to remove any user web start overrides. Subsequently, running jcontrol confirms that the web start network settings are the default "Use browser settings".
Clicking on the web start application button produces a "Java Web Start" pop-up which says it is "Dowloading Application". After about a minute, it pops up an "Application Error" pop-up which says "Unable to launch the application". Clicking on "Details" and then the "Wrapped Exception" tab returns the following top-level error:
ava.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.0 503 Service Unavailable"
Note from above that Firefox is *NOT* configured to use a proxy, so Web start should *NOT* be trying to use one either since it is supposed to be getting its settings from the web browser. Also note that the old proxy settings specifically excluded the network that both machines are on (i.e. the "network.proxy.no_proxies_on" setting included this network), so even if web start was supposed to be picking up proxy information it should have excluded this network.
There are two ways to work around this problem:
1) Start up the jcontrol application, and change the network setting from "use browser settings" to "Direct Connection"
2) Remove the old proxy settings in Firefox by switching to "Manual settings" clearing all of the proxy fields, then switching back to "Direct connection".
Once either of these workarounds is used, the web start works properly.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
In my opinion, there are two problems here:
1) Web start should *ONLY* pick up proxy settings from the Firefox prefs.js file if the "network.proxy.type" preference exists and is set to 1, regardless of whether the other proxy preferences exist. If this setting is missing or is set to 0 then proxy settings should not be picked up.
2) *IF* proxy values are picked up from the Firefox prefs.js file, Web start *MUST* honour the "network.proxy.no_proxies_on" setting. For example, this might be set to "127.0.0.1,192.168.10.0/24,.mydomain.com,.mycompany.com,.internal.mycompany.com" in which case these hosts/networks/domains should not be proxied.
Unfortunately, this bug results in complete failure of web start with very little feedback to the user. As a result, a very useful feature of the X4200M2 ILOM card (remote control via web browser) is rendered useless.
ACTUAL -
Web start fails to download and start the java app.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
From the "Exception" tab:
com.sun.deploy.net.FailedDownloadException: Unable to load resource: https://138.10.48.109:443/Java/JavaRConsole.jar
at com.sun.deploy.net.DownloadEngine.actionDownload(DownloadEngine.java:961)
at com.sun.deploy.net.DownloadEngine.getCacheEntry(DownloadEngine.java:1059)
at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(DownloadEngine.java:1134)
at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(DownloadEngine.java:1068)
at com.sun.deploy.net.DownloadEngine.getResource(DownloadEngine.java:142)
at com.sun.javaws.LaunchDownload.downloadJarFiles(LaunchDownload.java:826)
at com.sun.javaws.LaunchDownload.downloadEagerorAll(LaunchDownload.java:742)
at com.sun.javaws.Launcher.downloadResources(Launcher.java:1164)
at com.sun.javaws.Launcher.prepareLaunchFile(Launcher.java:540)
at com.sun.javaws.Launcher.prepareToLaunch(Launcher.java:157)
at com.sun.javaws.Launcher.launch(Launcher.java:95)
at com.sun.javaws.Main.launchApp(Main.java:300)
at com.sun.javaws.Main.continueInSecureThread(Main.java:210)
at com.sun.javaws.Main$1.run(Main.java:107)
at java.lang.Thread.run(Thread.java:619)
From the "Wrapped Exception" tab:
java.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.0 503 Service Unavailable"
at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1423)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:164)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:133)
at com.sun.deploy.net.BasicHttpRequest.doRequest(BasicHttpRequest.java:178)
at com.sun.deploy.net.BasicHttpRequest.doRequest(BasicHttpRequest.java:106)
at com.sun.deploy.net.BasicHttpRequest.doGetRequest(BasicHttpRequest.java:71)
at com.sun.deploy.net.DownloadEngine.actionDownload(DownloadEngine.java:791)
at com.sun.deploy.net.DownloadEngine.getCacheEntry(DownloadEngine.java:1059)
at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(DownloadEngine.java:1134)
at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(DownloadEngine.java:1068)
at com.sun.deploy.net.DownloadEngine.getResource(DownloadEngine.java:142)
at com.sun.javaws.LaunchDownload.downloadJarFiles(LaunchDownload.java:826)
at com.sun.javaws.LaunchDownload.downloadEagerorAll(LaunchDownload.java:742)
at com.sun.javaws.Launcher.downloadResources(Launcher.java:1164)
at com.sun.javaws.Launcher.prepareLaunchFile(Launcher.java:540)
at com.sun.javaws.Launcher.prepareToLaunch(Launcher.java:157)
at com.sun.javaws.Launcher.launch(Launcher.java:95)
at com.sun.javaws.Main.launchApp(Main.java:300)
at com.sun.javaws.Main.continueInSecureThread(Main.java:210)
at com.sun.javaws.Main$1.run(Main.java:107)
at java.lang.Thread.run(Thread.java:619)
REPRODUCIBILITY :
This bug can be reproduced always.
CUSTOMER SUBMITTED WORKAROUND :
See two workarounds above. Neither of these is all that acceptable since they require detailed knowledge of the issue which end users likely won't have.
javaws from 1.6.0_03-b05
ADDITIONAL OS VERSION INFORMATION :
SunOS zeus 5.8 Generic_117350-41 sun4u sparc SUNW,Sun-Blade-1500
SunOS horayser2 5.10 Generic_127111-01 sun4u sparc SUNW,Sun-Fire-V445
A DESCRIPTION OF THE PROBLEM :
Web start is picking up old proxy settings from the user's Firefox prefs.js file despite the fact that Firefox is configured for direct connection to the internet (i.e. no proxy).
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Sun X4200M2 ILOM card (serving up a JavaRConsole remote control application) and Sun Sparc desktop (acting as a web browsing client) machine, both on the same 255.255.255.0 network.
Firefox on client machine used to be configured with proxy settings, but configuration has since been changed by selecting the "Direct connection to the Internet" radio button. Note that in this circumstance, Firefox *LEAVES* most of the original proxy settings in its prefs.js file. The one exception is the:
user_pref("network.proxy.type", 1);
entry which is deleted. In other words, the *ABSENCE* of the network.proxy.type in prefs.js implies that there is no proxy (i.e. that "no proxy" is the default).
$HOME/.java deleted to remove any user web start overrides. Subsequently, running jcontrol confirms that the web start network settings are the default "Use browser settings".
Clicking on the web start application button produces a "Java Web Start" pop-up which says it is "Dowloading Application". After about a minute, it pops up an "Application Error" pop-up which says "Unable to launch the application". Clicking on "Details" and then the "Wrapped Exception" tab returns the following top-level error:
ava.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.0 503 Service Unavailable"
Note from above that Firefox is *NOT* configured to use a proxy, so Web start should *NOT* be trying to use one either since it is supposed to be getting its settings from the web browser. Also note that the old proxy settings specifically excluded the network that both machines are on (i.e. the "network.proxy.no_proxies_on" setting included this network), so even if web start was supposed to be picking up proxy information it should have excluded this network.
There are two ways to work around this problem:
1) Start up the jcontrol application, and change the network setting from "use browser settings" to "Direct Connection"
2) Remove the old proxy settings in Firefox by switching to "Manual settings" clearing all of the proxy fields, then switching back to "Direct connection".
Once either of these workarounds is used, the web start works properly.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
In my opinion, there are two problems here:
1) Web start should *ONLY* pick up proxy settings from the Firefox prefs.js file if the "network.proxy.type" preference exists and is set to 1, regardless of whether the other proxy preferences exist. If this setting is missing or is set to 0 then proxy settings should not be picked up.
2) *IF* proxy values are picked up from the Firefox prefs.js file, Web start *MUST* honour the "network.proxy.no_proxies_on" setting. For example, this might be set to "127.0.0.1,192.168.10.0/24,.mydomain.com,.mycompany.com,.internal.mycompany.com" in which case these hosts/networks/domains should not be proxied.
Unfortunately, this bug results in complete failure of web start with very little feedback to the user. As a result, a very useful feature of the X4200M2 ILOM card (remote control via web browser) is rendered useless.
ACTUAL -
Web start fails to download and start the java app.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
From the "Exception" tab:
com.sun.deploy.net.FailedDownloadException: Unable to load resource: https://138.10.48.109:443/Java/JavaRConsole.jar
at com.sun.deploy.net.DownloadEngine.actionDownload(DownloadEngine.java:961)
at com.sun.deploy.net.DownloadEngine.getCacheEntry(DownloadEngine.java:1059)
at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(DownloadEngine.java:1134)
at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(DownloadEngine.java:1068)
at com.sun.deploy.net.DownloadEngine.getResource(DownloadEngine.java:142)
at com.sun.javaws.LaunchDownload.downloadJarFiles(LaunchDownload.java:826)
at com.sun.javaws.LaunchDownload.downloadEagerorAll(LaunchDownload.java:742)
at com.sun.javaws.Launcher.downloadResources(Launcher.java:1164)
at com.sun.javaws.Launcher.prepareLaunchFile(Launcher.java:540)
at com.sun.javaws.Launcher.prepareToLaunch(Launcher.java:157)
at com.sun.javaws.Launcher.launch(Launcher.java:95)
at com.sun.javaws.Main.launchApp(Main.java:300)
at com.sun.javaws.Main.continueInSecureThread(Main.java:210)
at com.sun.javaws.Main$1.run(Main.java:107)
at java.lang.Thread.run(Thread.java:619)
From the "Wrapped Exception" tab:
java.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.0 503 Service Unavailable"
at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1423)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:164)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:133)
at com.sun.deploy.net.BasicHttpRequest.doRequest(BasicHttpRequest.java:178)
at com.sun.deploy.net.BasicHttpRequest.doRequest(BasicHttpRequest.java:106)
at com.sun.deploy.net.BasicHttpRequest.doGetRequest(BasicHttpRequest.java:71)
at com.sun.deploy.net.DownloadEngine.actionDownload(DownloadEngine.java:791)
at com.sun.deploy.net.DownloadEngine.getCacheEntry(DownloadEngine.java:1059)
at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(DownloadEngine.java:1134)
at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(DownloadEngine.java:1068)
at com.sun.deploy.net.DownloadEngine.getResource(DownloadEngine.java:142)
at com.sun.javaws.LaunchDownload.downloadJarFiles(LaunchDownload.java:826)
at com.sun.javaws.LaunchDownload.downloadEagerorAll(LaunchDownload.java:742)
at com.sun.javaws.Launcher.downloadResources(Launcher.java:1164)
at com.sun.javaws.Launcher.prepareLaunchFile(Launcher.java:540)
at com.sun.javaws.Launcher.prepareToLaunch(Launcher.java:157)
at com.sun.javaws.Launcher.launch(Launcher.java:95)
at com.sun.javaws.Main.launchApp(Main.java:300)
at com.sun.javaws.Main.continueInSecureThread(Main.java:210)
at com.sun.javaws.Main$1.run(Main.java:107)
at java.lang.Thread.run(Thread.java:619)
REPRODUCIBILITY :
This bug can be reproduced always.
CUSTOMER SUBMITTED WORKAROUND :
See two workarounds above. Neither of these is all that acceptable since they require detailed knowledge of the issue which end users likely won't have.