Name: gm110360 Date: 08/13/2003
FULL PRODUCT VERSION :
java version "1.4.1_02"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_02-b06)
Java HotSpot(TM) Client VM (build 1.4.1_02-b06, mixed mode)
FULL OS VERSION :
Microsoft Windows 2000 [Version 5.00.2195]
EXTRA RELEVANT SYSTEM CONFIGURATION :
Configure the Java Plugin to be the default JVM in the used Browser
(IE or Netscape, it has the same problem).
Configure the Java Plugin to use the Browser settings for the HTTP proxy.
Configure the browser to use a proxy for all http network access (including the local domain).
A DESCRIPTION OF THE PROBLEM :
When a browser is configured to use a HTTP proxy for all network access,
Java Plugin ignores this when loading an applet from LOCALHOST.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Use a html page like below:
<html>
<body>
<applet code="SomeApplet" codebase="http://localhost:8000/myapplet.jar">
</body>
</html>
- Put the html on a webserver.
- install the applet on another webserver (that listens on port 8000)
- install a HTTP proxy on this second webserver (on another port)
- configure the browser to use this proxy for all the network requests
- configure the Java Plugin to use the browser settings for the HTTP proxy
- surf to the first webserver HTML with Netscape or IE with Java 1.4.1_02 as JVM.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
With Netscape4.79 and IE, the applet is loaded from the second webserver
through the proxy.
With Netscape 7.x and IE with the Java Plugin 1.4.1_02 the jar file is not
found because it tries to connect to the port on the machine where the
browser is running and not throught the configured proxy.
ACTUAL -
The applet fails to startup (ClassNotFoundException) because it can not
download the jar file from the second webserver.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
at java.net.Socket.connect(Socket.java:426)
at sun.net.NetworkClient.doConnect(NetworkClient.java:137)
at sun.plugin.net.protocol.http.HttpClient.doConnect(HttpClient.java:93)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:386)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:602)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:303)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:264)
at sun.plugin.net.protocol.http.HttpClient.<init>(HttpClient.java:39)
at sun.plugin.net.protocol.http.HttpClient.New(HttpClient.java:66)
at sun.plugin.net.protocol.http.HttpURLConnection.privBlock(HttpURLConnection.java:116)
at sun.plugin.net.protocol.http.HttpURLConnection$PrivilegedBlockAction.run(HttpURLConnection.java:460)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin.net.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:167)
at sun.plugin.net.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:375)
at sun.plugin.net.protocol.http.HttpUtils.followRedirects(HttpUtils.java:39)
at sun.plugin.cache.CachedJarLoader.download(CachedJarLoader.java:302)
at sun.plugin.cache.CachedJarLoader.load(CachedJarLoader.java:128)
at sun.plugin.cache.JarCache.get(JarCache.java:172)
at sun.plugin.net.protocol.jar.CachedJarURLConnection.connect(CachedJarURLConnection.java:93)
at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFile(CachedJarURLConnection.java:78)
at sun.misc.URLClassPath$JarLoader.getJarFile(URLClassPath.java:580)
at sun.misc.URLClassPath$JarLoader.<init>(URLClassPath.java:541)
at sun.misc.URLClassPath$3.run(URLClassPath.java:319)
at java.security.AccessController.doPrivileged(Native Method)
at sun.misc.URLClassPath.getLoader(URLClassPath.java:308)
at sun.misc.URLClassPath.getLoader(URLClassPath.java:285)
at sun.misc.URLClassPath.getResource(URLClassPath.java:155)
at java.net.URLClassLoader$1.run(URLClassLoader.java:190)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:134)
at sun.plugin.security.PluginClassLoader.findClass(PluginClassLoader.java:168)
at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:114)
at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:501)
at sun.applet.AppletPanel.createApplet(AppletPanel.java:567)
at sun.plugin.AppletViewer.createApplet(AppletViewer.java:1778)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:496)
at sun.applet.AppletPanel.run(AppletPanel.java:293)
at java.lang.Thread.run(Thread.java:536)
load: class com.swift.iab.Adapter.class not found.
java.lang.ClassNotFoundException: com.swift.iab.Adapter.class
at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:153)
at sun.plugin.security.PluginClassLoader.findClass(PluginClassLoader.java:168)
at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:114)
at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:506)
at sun.applet.AppletPanel.createApplet(AppletPanel.java:567)
at sun.plugin.AppletViewer.createApplet(AppletViewer.java:1778)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:496)
at sun.applet.AppletPanel.run(AppletPanel.java:293)
at java.lang.Thread.run(Thread.java:536)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
Any applet will do.
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
There is no workaround for us since we rely on the presence of the applet on localhost (or through the proxy depending on the user configuration).
(Incident Review ID: 186355)
======================================================================
FULL PRODUCT VERSION :
java version "1.4.1_02"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_02-b06)
Java HotSpot(TM) Client VM (build 1.4.1_02-b06, mixed mode)
FULL OS VERSION :
Microsoft Windows 2000 [Version 5.00.2195]
EXTRA RELEVANT SYSTEM CONFIGURATION :
Configure the Java Plugin to be the default JVM in the used Browser
(IE or Netscape, it has the same problem).
Configure the Java Plugin to use the Browser settings for the HTTP proxy.
Configure the browser to use a proxy for all http network access (including the local domain).
A DESCRIPTION OF THE PROBLEM :
When a browser is configured to use a HTTP proxy for all network access,
Java Plugin ignores this when loading an applet from LOCALHOST.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Use a html page like below:
<html>
<body>
<applet code="SomeApplet" codebase="http://localhost:8000/myapplet.jar">
</body>
</html>
- Put the html on a webserver.
- install the applet on another webserver (that listens on port 8000)
- install a HTTP proxy on this second webserver (on another port)
- configure the browser to use this proxy for all the network requests
- configure the Java Plugin to use the browser settings for the HTTP proxy
- surf to the first webserver HTML with Netscape or IE with Java 1.4.1_02 as JVM.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
With Netscape4.79 and IE, the applet is loaded from the second webserver
through the proxy.
With Netscape 7.x and IE with the Java Plugin 1.4.1_02 the jar file is not
found because it tries to connect to the port on the machine where the
browser is running and not throught the configured proxy.
ACTUAL -
The applet fails to startup (ClassNotFoundException) because it can not
download the jar file from the second webserver.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
at java.net.Socket.connect(Socket.java:426)
at sun.net.NetworkClient.doConnect(NetworkClient.java:137)
at sun.plugin.net.protocol.http.HttpClient.doConnect(HttpClient.java:93)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:386)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:602)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:303)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:264)
at sun.plugin.net.protocol.http.HttpClient.<init>(HttpClient.java:39)
at sun.plugin.net.protocol.http.HttpClient.New(HttpClient.java:66)
at sun.plugin.net.protocol.http.HttpURLConnection.privBlock(HttpURLConnection.java:116)
at sun.plugin.net.protocol.http.HttpURLConnection$PrivilegedBlockAction.run(HttpURLConnection.java:460)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin.net.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:167)
at sun.plugin.net.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:375)
at sun.plugin.net.protocol.http.HttpUtils.followRedirects(HttpUtils.java:39)
at sun.plugin.cache.CachedJarLoader.download(CachedJarLoader.java:302)
at sun.plugin.cache.CachedJarLoader.load(CachedJarLoader.java:128)
at sun.plugin.cache.JarCache.get(JarCache.java:172)
at sun.plugin.net.protocol.jar.CachedJarURLConnection.connect(CachedJarURLConnection.java:93)
at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFile(CachedJarURLConnection.java:78)
at sun.misc.URLClassPath$JarLoader.getJarFile(URLClassPath.java:580)
at sun.misc.URLClassPath$JarLoader.<init>(URLClassPath.java:541)
at sun.misc.URLClassPath$3.run(URLClassPath.java:319)
at java.security.AccessController.doPrivileged(Native Method)
at sun.misc.URLClassPath.getLoader(URLClassPath.java:308)
at sun.misc.URLClassPath.getLoader(URLClassPath.java:285)
at sun.misc.URLClassPath.getResource(URLClassPath.java:155)
at java.net.URLClassLoader$1.run(URLClassLoader.java:190)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:134)
at sun.plugin.security.PluginClassLoader.findClass(PluginClassLoader.java:168)
at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:114)
at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:501)
at sun.applet.AppletPanel.createApplet(AppletPanel.java:567)
at sun.plugin.AppletViewer.createApplet(AppletViewer.java:1778)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:496)
at sun.applet.AppletPanel.run(AppletPanel.java:293)
at java.lang.Thread.run(Thread.java:536)
load: class com.swift.iab.Adapter.class not found.
java.lang.ClassNotFoundException: com.swift.iab.Adapter.class
at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:153)
at sun.plugin.security.PluginClassLoader.findClass(PluginClassLoader.java:168)
at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:114)
at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:506)
at sun.applet.AppletPanel.createApplet(AppletPanel.java:567)
at sun.plugin.AppletViewer.createApplet(AppletViewer.java:1778)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:496)
at sun.applet.AppletPanel.run(AppletPanel.java:293)
at java.lang.Thread.run(Thread.java:536)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
Any applet will do.
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
There is no workaround for us since we rely on the presence of the applet on localhost (or through the proxy depending on the user configuration).
(Incident Review ID: 186355)
======================================================================