FULL PRODUCT VERSION : java version "1.6.0_11" Java(TM) SE Runtime Environment (build 1.6.0_11-b03) Java HotSpot(TM) Client VM (build 11.0-b16, mixed mode, sharing) ADDITIONAL OS VERSION INFORMATION : Windows XP SP3 A DESCRIPTION OF THE PROBLEM : We are in the process of installing a new proxy server and are setting our workstations to use a PAC file to determine when they should use the proxy and when they should go direct. When having JAVA set to use either browser settings for Proxy or pointing to a URL for the proxy PAC file, the java application fails. It says that the standard pac file functions such as isPlainHostName(host) and dnsDomainIs(host, domain) are undefined and fails to load the PAC file. STEPS TO FOLLOW TO REPRODUCE THE PROBLEM : Use proxy autoconfig file EXPECTED VERSUS ACTUAL BEHAVIOR : EXPECTED - For this application, it should bypass the proxy ACTUAL - Application is giving "an unhandled exception occurred: 1" error and failing. ERROR MESSAGES/STACK TRACES THAT OCCUR : awt.toolkit -> sun.awt.windows.WToolkit codebase -> http://onbwebsvr3.onbcorp.com/eVision/Check defaultlocale -> en_US deployment.browser.path -> C:\Program Files\Internet Explorer\IEXPLORE.EXE deployment.browser.vm.iexplorer -> true deployment.browser.vm.mozilla -> true deployment.cache.enabled -> true deployment.cache.jarcompression -> 0 deployment.cache.max.size -> -1 deployment.capture.mime.types -> false deployment.console.startup.mode -> SHOW deployment.control.panel.log -> false deployment.javapi.cache.update -> false deployment.javapi.lifecycle.exception -> false deployment.javapi.log.filename -> deployment.javapi.runtime.type -> 0 deployment.javapi.trace.filename -> deployment.javaws.associations -> ASK_USER deployment.javaws.autodownload -> ALWAYS deployment.javaws.cache.update -> false deployment.javaws.home.jnlp.url -> http://java.sun.com/products/javawebstart deployment.javaws.installURL -> http://java.sun.com/products/autodl/j2se deployment.javaws.logFileName -> deployment.javaws.muffin.max -> 256 deployment.javaws.shortcut -> ASK_IF_HINTED deployment.javaws.splash.index -> C:\Documents and Settings\RKREMER\Application Data\Sun\Java\Deployment\cache\6.0\splash\splash.xml deployment.javaws.ssv.enabled -> true deployment.javaws.traceFileName -> deployment.javaws.uninstall.shortcut -> false deployment.javaws.update.timeout -> 1500 deployment.jpi.mode.new -> true deployment.log -> false deployment.max.output.file.size -> 10 deployment.max.output.files -> 5 deployment.mime.types.use.default -> true deployment.proxy.auto.config.url -> http://10.100.0.211:8080/accelerated_pac_base.pac deployment.proxy.bypass.local -> false deployment.proxy.override.hosts -> deployment.proxy.same -> false deployment.proxy.type -> 3 deployment.repository.askdownloaddialog.show -> true deployment.repository.enabled -> true deployment.security.SSLv2Hello -> false deployment.security.SSLv3 -> true deployment.security.TLSv1 -> true deployment.security.askgrantdialog.notinca -> true deployment.security.askgrantdialog.show -> true deployment.security.authenticator -> true deployment.security.browser.keystore.use -> true deployment.security.clientauth.keystore.auto -> true deployment.security.expired.warning -> true deployment.security.https.warning.show -> false deployment.security.jsse.hostmismatch.warning -> false deployment.security.notinca.warning -> true deployment.security.pretrust.list -> true deployment.security.sandbox.awtwarningwindow -> true deployment.security.sandbox.jnlp.enhanced -> true deployment.security.trusted.policy -> deployment.security.validation.crl -> false deployment.security.validation.ocsp -> false deployment.system.security.cacerts -> C:\Program Files\Java\jre6\lib\security\cacerts deployment.system.security.jssecacerts -> C:\Program Files\Java\jre6\lib\security\jssecacerts deployment.system.security.oldcacerts -> C:\Program Files\Java\jre6\lib\security\cacerts deployment.system.security.oldjssecacerts -> C:\Program Files\Java\jre6\lib\security\jssecacerts deployment.system.security.trusted.certs -> C:\Program Files\Java\jre6\lib\security\trusted.certs deployment.system.security.trusted.clientauthcerts -> C:\Program Files\Java\jre6\lib\security\trusted.clientcerts deployment.system.security.trusted.jssecerts -> C:\Program Files\Java\jre6\lib\security\trusted.jssecerts deployment.system.security.trusted.publishers -> C:\Program Files\Java\jre6\lib\security\trusted.publishers deployment.system.tray.icon -> true deployment.trace -> false deployment.update.mime.types -> true deployment.user.cachedir -> C:\Documents and Settings\RKREMER\Application Data\Sun\Java\Deployment\cache deployment.user.extdir -> C:\Documents and Settings\RKREMER\Application Data\Sun\Java\Deployment\ext deployment.user.logdir -> C:\Documents and Settings\RKREMER\Application Data\Sun\Java\Deployment\log deployment.user.security.policy -> file://C:/Documents%20and%20Settings/RKREMER/Application%20Data/Sun/Java/Deployment/security/java.policy deployment.user.security.saved.credentials -> C:\Documents and Settings\RKREMER\Application Data\Sun\Java\Deployment\security\auth.dat deployment.user.security.trusted.cacerts -> C:\Documents and Settings\RKREMER\Application Data\Sun\Java\Deployment\security\trusted.cacerts deployment.user.security.trusted.certs -> C:\Documents and Settings\RKREMER\Application Data\Sun\Java\Deployment\security\trusted.certs deployment.user.security.trusted.clientauthcerts -> C:\Documents and Settings\RKREMER\Application Data\Sun\Java\Deployment\security\trusted.clientcerts deployment.user.security.trusted.jssecacerts -> C:\Documents and Settings\RKREMER\Application Data\Sun\Java\Deployment\security\trusted.jssecacerts deployment.user.security.trusted.jssecerts -> C:\Documents and Settings\RKREMER\Application Data\Sun\Java\Deployment\security\trusted.jssecerts deployment.user.security.trusted.publishers -> C:\Documents and Settings\RKREMER\Application Data\Sun\Java\Deployment\security\trusted.publishers deployment.user.tmp -> C:\Documents and Settings\RKREMER\Application Data\Sun\Java\Deployment\tmp deployment.version -> 6.0 file.encoding -> Cp1252 file.encoding.pkg -> sun.io file.separator -> http.auth.serializeRequests -> true https.protocols -> TLSv1,SSLv3 java.awt.graphicsenv -> sun.awt.Win32GraphicsEnvironment java.awt.printerjob -> sun.awt.windows.WPrinterJob java.class.path -> C:\Program Files\Java\jre6\lib\deploy.jar java.class.version -> 50.0 java.endorsed.dirs -> C:\Program Files\Java\jre6\lib\endorsed java.ext.dirs -> C:\Program Files\Java\jre6\lib\ext;C:\WINDOWS\Sun\Java\lib\ext java.home -> C:\Program Files\Java\jre6 java.io.tmpdir -> C:\DOCUME~1\RKREMER\LOCALS~1\Tempjava.library.path -> C:\Program Files\Java\jre6\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Java\jre6\bin;C:\Program Files\Internet Explorer;;C:\Perl\site\bin;C:\Perl\bin;C:\Program Files\VASCO\VACMAN Middleware 3\Bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\ATI Technologies\ATI Control Panel;C:\PROGRA~1\IBM\CLIENT~1;C:\PROGRA~1\IBM\CLIENT~1\Shared;C:\PROGRA~1\IBM\CLIENT~1\Emulator;;C:\Program Files\Novell\ZENworks\;C:\WINDOWS\system32\nls;C:\WINDOWS\system32\nls\english;C:\Program Files\Utimaco\SafeGuard Easy\;\6.0\ConflictSolver;%C:\WINDOWS%\system32\nls;%C:\WINDOWS%\system32\nls\ENGLISH;C:\Program Files\Novell\ZENworks;c:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files\Nmap;C:\Program Files\Nmap;C:\;Z:.;Y:.;X:.;C:\WINDOWS\system32\nls;C:\WINDOWS\system32\nls\ENGLISH;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nmap;C:\;Z:.;Y:.;X:.;;"C:\Program Files\Java\jre6\bin" java.protocol.handler.pkgs -> com.sun.javaws.net.protocol|com.sun.deploy.net.protocol java.quick.starter -> true java.rmi.server.RMIClassLoaderSpi -> com.sun.jnlp.JNLPRMIClassLoaderSpi java.runtime.name -> Java(TM) SE Runtime Environment java.runtime.version -> 1.6.0_11-b03 java.security.policy -> file:C:\Program Files\Java\jre6\lib\security\javaws.policy java.specification.name -> Java Platform API Specification java.specification.vendor -> Sun Microsystems Inc. java.specification.version -> 1.6 java.vendor -> Sun Microsystems Inc. java.vendor.url -> http://java.sun.com/ java.vendor.url.bug -> http://java.sun.com/cgi-bin/bugreport.cgi java.version -> 1.6.0_11 java.vm.info -> mixed mode, sharing java.vm.name -> Java HotSpot(TM) Client VM java.vm.specification.name -> Java Virtual Machine Specification java.vm.specification.vendor -> Sun Microsystems Inc. java.vm.specification.version -> 1.0 java.vm.vendor -> Sun Microsystems Inc. java.vm.version -> 11.0-b16 javaplugin.proxy.config.type -> auto javawebstart.version -> javaws-1.6.0_11 jnlpx.home -> C:\Program Files\Java\jre6\bin jnlpx.jvm -> C:\Program Files\Java\jre6\bin\javaw.exe jnlpx.remove -> false jnlpx.splashport -> 4987 line.separator -> os.arch -> x86 os.name -> Windows XP os.version -> 5.1 path.separator -> ; sun.arch.data.model -> 32 sun.boot.class.path -> C:\Program Files\Java\jre6\lib\resources.jar;C:\Program Files\Java\jre6\lib\rt.jar;C:\Program Files\Java\jre6\lib\sunrsasign.jar;C:\Program Files\Java\jre6\lib\jsse.jar;C:\Program Files\Java\jre6\lib\jce.jar;C:\Program Files\Java\jre6\lib\charsets.jar;C:\Program Files\Java\jre6\classes;C:\Program Files\Java\jre6\lib\javaws.jar;C:\Program Files\Java\jre6\lib\deploy.jar sun.boot.library.path -> C:\Program Files\Java\jre6\bin sun.cpu.endian -> little sun.cpu.isalist -> pentium_pro+mmx pentium_pro pentium+mmx pentium i486 i386 i86 sun.desktop -> windows sun.io.unicode.encoding -> UnicodeLittle sun.java.launcher -> SUN_STANDARD sun.jnu.encoding -> Cp1252 sun.management.compiler -> HotSpot Client Compiler sun.os.patch.level -> Service Pack 3 trustProxy -> true user.country -> US user.dir -> C:\Documents and Settings\RKREMER\Desktop user.home -> C:\Documents and Settings\RKREMER user.language -> en user.name -> RKREMER user.timezone -> America/Chicago user.variant -> 1: #deployment.properties 2: #Thu Jul 16 09:37:31 CDT 2009 3: deployment.security.jsse.hostmismatch.warning=false 4: deployment.proxy.auto.config.url=http\://10.100.0.211\:8080/accelerated_pac_base.pac 5: deployment.javaws.splash.index=C\:\\Documents and Settings\\RKREMER\\Application Data\\Sun\\Java\\Deployment\\cache\\6.0\\splash\\splash.xml 6: deployment.version=6.0 7: deployment.console.startup.mode=SHOW 8: deployment.browser.path=C\:\\Program Files\\Internet Explorer\\IEXPLORE.EXE 9: #Java Web Start jre's 10: #Thu Jul 16 09:37:31 CDT 2009 11: deployment.javaws.jre.1.registered=true 12: deployment.javaws.jre.1.osname=Windows 13: deployment.javaws.jre.0.platform=1.6 14: deployment.javaws.jre.0.registered=true 15: deployment.javaws.jre.1.enabled=true 16: deployment.javaws.jre.1.location=http\://java.sun.com/products/autodl/j2se 17: deployment.javaws.jre.0.osname=Windows 18: deployment.javaws.jre.0.path=C\:\\Program Files\\Java\\jre6\\bin\\javaw.exe 19: deployment.javaws.jre.0.product=1.6.0_11 20: deployment.javaws.jre.1.osarch=x86 21: deployment.javaws.jre.1.path=C\:\\Program Files\\Java\\jre1.6.0_07\\bin\\javaw.exe 22: deployment.javaws.jre.1.platform=1.6 23: deployment.javaws.jre.0.osarch=x86 24: deployment.javaws.jre.1.product=1.6.0_07 25: deployment.javaws.jre.0.location=http\://java.sun.com/products/autodl/j2se 26: deployment.javaws.jre.0.enabled=true deployment.proxy.type: = null No Proxy config set in Java WebStart Checking registry for Browser Settings ReferenceError: "isPlainHostName" is not defined. (<cmd>#15) Warning: error in the HTTP response processing loop java.lang.NullPointerException at com.afsimage.lib.net.DefaultRequestor3.finishTransaction(Unknown Source) at com.afsimage.lib.net.PartialRequestorImpl.run(Unknown Source) at java.lang.Thread.run(Unknown Source) REPRODUCIBILITY : This bug can be reproduced always. ---------- BEGIN SOURCE ---------- function FindProxyForURL(url, host) { //Bypass these domains if ( isPlainHostName(host) ) { return "DIRECT"; } if (dnsDomainIs(host, ".domain.com")) { return "DIRECT"; } if (dnsDomainIs(host, ".domain2.com")) { return "DIRECT"; } if (dnsDomainIs(host, ".domain3.com")) { return "DIRECT"; } if (dnsDomainIs(host, ".domain4.com")) { return "DIRECT"; } //URLs within these networks go Direct if (isInNet(host, "10.0.0.0", "255.0.0.0")) { return "DIRECT";} if (isInNet(host, "192.168.0.0", "255.255.0.0")) { return "DIRECT";} if (isInNet(host, "172.16.0.0", "255.240.0.0")) { return "DIRECT";} //Set proxy for Streaming Protocols if( url.substring(0, 5) == "rtsp:" ) return "PROXY 10.100.0.211:554"; if( url.substring(0, 5) == "mms:" ) return "PROXY 10.100.0.211:1755"; //Set proxy for everything else return "PROXY 10.100.0.211:8080; DIRECT"; } ---------- END SOURCE ---------- CUSTOMER SUBMITTED WORKAROUND : use 'if (host=="host.domain.com") { return "DIRECT"; }' to specify which servers that the java application needs to use and go direct. If I put this at the top of the PAC file before any of the functions, it seems to work OK. But this is definitely not a good solution since I won't know what URLs need to go direct and which should use a proxy until they break.
|