JDK-8071428 : Jre 1.7.0_72-b14 unable to download jar file, proxy.pac dumped on console
  • Type: Bug
  • Component: deploy
  • Sub-Component: plugin
  • Affected Version: 7u72
  • Priority: P3
  • Status: Resolved
  • Resolution: Duplicate
  • OS: windows_8
  • CPU: x86
  • Submitted: 2015-01-15
  • Updated: 2015-07-17
  • Resolved: 2015-07-17
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.
JDK 7
7-poolResolved
Related Reports
Duplicate :  
Relates :  
Description
FULL PRODUCT VERSION :
java version "1.7.0_72"
Java(TM) SE Runtime Environment (build 1.7.0_72-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.72-b04, mixed mode)


ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows [Version 6.3.9600]

EXTRA RELEVANT SYSTEM CONFIGURATION :
It is reported when jar files are downloaded from Server using applets

A DESCRIPTION OF THE PROBLEM :
While accessing our application it opens anapplet window and tries to download the jar file from the server. It was able to download the jar file successfully on 1.7.0_67 but when we upgraded the java to 1.7.0_72-b14 it stopped working and was not able to download the jar file.

When we check the java console with trace level enabled we found that our proxy.pac file content was dumped on the console with "java.net.SocketException: Unknown proxy type : HTTP" error message.

REGRESSION.  Last worked in version 7u67

ADDITIONAL REGRESSION INFORMATION: 
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)


STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1) Access a web application which tries to invoke an applet to download the jar file from server
2) This jar file is downloaded via common proxy.pac file
3) Applet window will hang and will not move further and jar file is not downloaded
4) Check the java console in trace level for the error information

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
1) Access a web application which tries to invoke an applet to download the jar file from server
2) This jar file is downloaded via common proxy.pac file
3) Applet window will open the successfully and the jar file downloaded successfully

ACTUAL -
Applet window was hangged and error was logged in java console


ERROR MESSAGES/STACK TRACES THAT OCCUR :
Please find the java console log content in below
Note: the IP address and the server name has been masked or changed for reporting.


Java-Plug-in 10.72.2.14
JRE-Version verwenden 1.7.0_72-b14 Java HotSpot(TM) Client VM
Benutzer-Home-Verzeichnis = C:\Users\hamdanq
----------------------------------------------------
c:   Konsolenfenster l��schen
f:   Objekte in Finalisierungs-Queue finalisieren
g:   Garbage Collect
h:   Diese Hilfemeldung anzeigen
l:   Class Loader-Liste ausgeben
m:   Speicherauslastung drucken
o:   Logging ausl��sen
q:   Konsole ausblenden
r:   Policy-Konfiguration neu laden
s:   System- und Deployment-Eigenschaften ausgeben
t:   Threadliste ausgeben
v:   Threadstack ausgeben
x:   Class Loader-Cache leeren
0-5: Traceebene auf <n> setzen
----------------------------------------------------
cache: Initialize resource manager: com.sun.deploy.cache.ResourceProviderImpl@b5615d
basic: Fortschritts-Listener hinzugef��gt: sun.plugin.util.ProgressMonitorAdapter@15d0ff7
security: Expected Main URL: http://<server_name>:8080/classes/DialerClient.jar
basic: Plugin2ClassLoader.addURL parent called for http://<server_name>:8080/classes/DialerClient.jar
basic: Plugin2ClassLoader.addURL parent called for http://<server_name>:8080/classes/o2.jar
basic: Plugin2ClassLoader.addURL parent called for http://<server_name>:8080/classes/lib/classes12.jar
network: Cacheeintrag nicht gefunden [URL: http://<server_name>:8080/classes/DialerClient.jar, Version: null]
network: Verbindung von http://<server_name>:8080/classes/DialerClient.jar mit Proxy=HTTP @ 15.119.18.5:8080"  } else if (isInNet(host, "15.97.192.0", "255.255.254.0") ||  (isInNet(host, "15.118.79.8", "255.255.255.255")) ||  (isInNet(host, "15.97.10.192", "255.255.255.192"))) {  return "DIRECT"  } else {  return "PROXY 15.120.18.5:8080 wird hergestellt
network: Verbindung http://<server_name>:8080/classes/DialerClient.jar, 15.119.18.5:8080"  } else if (isInNet(host, "15.97.192.0", "255.255.254.0") ||  (isInNet(host, "15.118.79.8", "255.255.255.255")) ||  (isInNet(host, "15.97.10.192", "255.255.255.192"))) {  return "DIRECT"  } else {  return "PROXY 15.120.18.5:8080 wird hergestellt
network: Verbindung von http://<server_name>:8080/ mit Proxy=HTTP @ 15.119.18.5:8080"  } else if (isInNet(host, "15.97.192.0", "255.255.254.0") ||  (isInNet(host, "15.118.79.8", "255.255.255.255")) ||  (isInNet(host, "15.97.10.192", "255.255.255.192"))) {  return "DIRECT"  } else {  return "PROXY 15.120.18.5:8080 wird hergestellt
java.net.SocketException: Unknown proxy type : HTTP
         at java.net.SocksSocketImpl.connect(Unknown Source)
         at java.net.Socket.connect(Unknown Source)
         at sun.net.NetworkClient.doConnect(Unknown Source)
         at sun.net.www.http.HttpClient.openServer(Unknown Source)
         at sun.net.www.http.HttpClient.openServer(Unknown Source)
         at sun.net.www.http.HttpClient.<init>(Unknown Source)
         at sun.net.www.http.HttpClient.New(Unknown Source)
         at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
         at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
         at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
         at sun.plugin.PluginURLJarFileCallBack.connect(Unknown Source)
         at sun.plugin.PluginURLJarFileCallBack.retrieve(Unknown Source)
         at sun.net.www.protocol.jar.URLJarFile.retrieve(Unknown Source)
         at sun.net.www.protocol.jar.URLJarFile.getJarFile(Unknown Source)
         at sun.net.www.protocol.jar.JarFileFactory.get(Unknown Source)
         at sun.net.www.protocol.jar.JarURLConnection.connect(Unknown Source)
         at sun.plugin.net.protocol.jar.CachedJarURLConnection.connect(Unknown Source)
         at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFileInternal(Unknown Source)
         at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFile(Unknown Source)
         at com.sun.deploy.security.DeployURLClassPath$JarLoader.getJarFile(Unknown Source)
         at com.sun.deploy.security.DeployURLClassPath$JarLoader.access$1000(Unknown Source)
         at com.sun.deploy.security.DeployURLClassPath$JarLoader$1.run(Unknown Source)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sun.deploy.security.DeployURLClassPath$JarLoader.ensureOpen(Unknown Source)
         at com.sun.deploy.security.DeployURLClassPath$JarLoader.<init>(Unknown Source)
         at com.sun.deploy.security.DeployURLClassPath$3.run(Unknown Source)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sun.deploy.security.DeployURLClassPath.getLoader(Unknown Source)
         at com.sun.deploy.security.DeployURLClassPath.getLoader(Unknown Source)
         at com.sun.deploy.security.DeployURLClassPath.getResource(Unknown Source)
         at sun.plugin2.applet.Plugin2ClassLoader$2.run(Unknown Source)
         at java.security.AccessController.doPrivileged(Native Method)
         at sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Unknown Source)
         at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
         at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
         at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
         at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
         at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
         at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
         at java.lang.ClassLoader.loadClass(Unknown Source)
         at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
         at sun.plugin2.applet.Plugin2Manager.initAppletAdapter(Unknown Source)
         at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
         at java.lang.Thread.run(Unknown Source)


REPRODUCIBILITY :
This bug can be reproduced always.

CUSTOMER SUBMITTED WORKAROUND :
Move back the java version to 1.7.0_67


Comments
According to the description: the problem was caused by incorrect work of isResolvable(host) function. The function invokes dnsResolve(host) during execution. It is most likely this known and already fixed issue. I believe this is an instance of JDK-8061643 or JDK-8061648. Both were fixed and integrated into 7u79 and 7u80 which are available for downloading at Oracle site. I recommend re-test the problem on 7u79 or 7u80. I am closing this as dupe of JDK-8061648 since it is based on JDK-8061643. If the problem is still present, please re-open.
17-07-2015

Response from the submitter: --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Unfortunately the URL can only be accessed from the intranet and not from public domain. As additional information I have attached the example proxy.pac file which is used in this case. As per my observation entire content after the method isResolvable(host) (see below) is dumped on the java console and the Socket HTTP error was thrown. Please let me know if you need any further information, I am happy to provide. } else if (!isResolvable(host)) { return "PROXY 12.139.14.15:8080" } else if (isInNet(host, "12.134.12.15", "255.255.254.0") || (isInNet(host, "12.114.75.4", "255.255.255.255")) || (isInNet(host, "12.114.75.5", "255.255.255.255")) || (isInNet(host, "12.114.75.6", "255.255.255.255")) || (isInNet(host, "12.114.75.7", "255.255.255.255")) || (isInNet(host, "12.114.75.8", "255.255.255.192"))) { return "DIRECT" // USE F5 LOADBALANCER VIP } else { return "PROXY 12.139.14.15:8080" } } -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
23-01-2015

Email sent to the submitter: "Can you share the example web application url for us to reproduce this issue quickly?"
20-01-2015