Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-7179077

We could reduce the times of attempting to get resource which does not exist at web side.

    Details

    • CPU:
      generic
    • OS:
      generic

      Description

      We have the following applet:
      ===========
      <APPLET CODE="HJCN1" CODEBASE="/HTTP_JarCaching_Filter/classes/N1" WIDTH = 650 HEIGHT = 300>
      <param name=archive_1 value=MainTest.jar,preload,version=1.0.0.0>
      <APPLET>
      ==========

      We also have MainTest.jar deployed at web side with JNLPDownloadServlet. But the version does not match, the one at web side is 2.0.0.0 while the applet requests 1.0.0.0. In applet, We also try to load a class defined in MainTest.jar which though will not be downloaded due to version mismatch.

      From the trace below, we could see plugin sent over sereral requests instead of one before the FailedDownloadException has finally been thrown.
      ================Trace============
      network: Cache entry not found [url: http://192.168.142.147:8080/HTTP_JarCaching_Filter/classes/N1/MainTest.jar, version: 1.0.0.0]
      network: Connecting http://192.168.142.147:8080/HTTP_JarCaching_Filter/classes/N1/MainTest.jar?version-id=1.0.0.0 with proxy=DIRECT
      network: Connecting http://192.168.142.147:8080/ with proxy=DIRECT
      network: Cache entry not found [url: http://192.168.142.147:8080/HTTP_JarCaching_Filter/classes/N1/MainTest.jar, version: 1.0.0.0]
      network: Cache entry not found [url: http://192.168.142.147:8080/HTTP_JarCaching_Filter/classes/N1/MainTest.jar, version: 1.0.0.0]
      network: Connecting http://192.168.142.147:8080/HTTP_JarCaching_Filter/classes/N1/MainTest.jar?version-id=1.0.0.0 with proxy=DIRECT
      network: ResponseCode for http://192.168.142.147:8080/HTTP_JarCaching_Filter/classes/N1/MainTest.jar?version-id=1.0.0.0 : 200
      network: Encoding for http://192.168.142.147:8080/HTTP_JarCaching_Filter/classes/N1/MainTest.jar?version-id=1.0.0.0 : null
      network: Sever response: (length: 39, lastModified: Thu Jan 01 08:00:00 CST 1970, downloadVersion: 1.0.0.0, mimeType: application/x-java-jnlp-error)
      network: Cache entry not found [url: http://192.168.142.147:8080/HTTP_JarCaching_Filter/classes/N1/MainTest.jar, version: 1.0.0.0]
      network: Connecting http://192.168.142.147:8080/HTTP_JarCaching_Filter/classes/N1/MainTest.jar?version-id=1.0.0.0 with proxy=DIRECT
      network: Cache entry not found [url: http://192.168.142.147:8080/HTTP_JarCaching_Filter/classes/N1/MainTest.jar, version: 1.0.0.0]
      network: Cache entry not found [url: http://192.168.142.147:8080/HTTP_JarCaching_Filter/classes/N1/MainTest.jar, version: 1.0.0.0]
      network: Connecting http://192.168.142.147:8080/HTTP_JarCaching_Filter/classes/N1/MainTest.jar?version-id=1.0.0.0 with proxy=DIRECT
      network: ResponseCode for http://192.168.142.147:8080/HTTP_JarCaching_Filter/classes/N1/MainTest.jar?version-id=1.0.0.0 : 200
      network: Encoding for http://192.168.142.147:8080/HTTP_JarCaching_Filter/classes/N1/MainTest.jar?version-id=1.0.0.0 : null
      network: Sever response: (length: 39, lastModified: Thu Jan 01 08:00:00 CST 1970, downloadVersion: 1.0.0.0, mimeType: application/x-java-jnlp-error)
      basic: Plugin2ClassLoader.addURL parent called for file:/C:/Program%20Files/Java/jre8/lib/applet/hostile.jar
      basic: Plugin2ClassLoader.addURL parent called for http://192.168.142.147:8080/HTTP_JarCaching_Filter/classes/N1/MainTest.jar
      basic: Plugin2ClassLoader.addURL parent called for http://192.168.142.147:8080/HTTP_JarCaching_Filter/classes/N1/Test1.jar
      basic: Plugin2ClassLoader.addURL parent called for http://192.168.142.147:8080/HTTP_JarCaching_Filter/classes/N1/Test2.jar
      preloader: Added pending event 1: AppletInitEvent[type=CallConstructor]
      preloader: Using preloader class: null com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter@192ee25
      preloader: Using default preloader
      preloader: Requested to use preloader class: null
      preloader: Delivering: AppletInitEvent[type=CallConstructor]
      preloader: Skipped all (0) download events prior to null
      preloader: GrayBox: parent = sun.plugin2.main.client.PluginEmbeddedFrame[frame0,0,0,650x300,layout=java.awt.BorderLayout,title=,resizable,normal]
      preloader: Start progressCheck thread
      security: Blacklist revocation check is enabled
      security: The jar file isnt signed so the blacklist check will be skipped
      security: Trusted libraries list check is enabled
      security: The jar file isnt signed so the trusted libraries list check will be skipped
      security: The jar file isnt signed so the blacklist check will be skipped
      network: Cache entry not found [url: file:/C:/Program%20Files/Java/jre8/lib/applet/hostile.jar, version: null]
      network: Cache entry not found [url: http://192.168.142.147:8080/HTTP_JarCaching_Filter/classes/N1/MainTest.jar, version: 1.0.0.0]
      network: Connecting http://192.168.142.147:8080/HTTP_JarCaching_Filter/classes/N1/MainTest.jar?version-id=1.0.0.0 with proxy=DIRECT
      network: Cache entry not found [url: http://192.168.142.147:8080/HTTP_JarCaching_Filter/classes/N1/MainTest.jar, version: 1.0.0.0]
      network: Cache entry not found [url: http://192.168.142.147:8080/HTTP_JarCaching_Filter/classes/N1/MainTest.jar, version: 1.0.0.0]
      network: Connecting http://192.168.142.147:8080/HTTP_JarCaching_Filter/classes/N1/MainTest.jar?version-id=1.0.0.0 with proxy=DIRECT
      network: ResponseCode for http://192.168.142.147:8080/HTTP_JarCaching_Filter/classes/N1/MainTest.jar?version-id=1.0.0.0 : 200
      network: Encoding for http://192.168.142.147:8080/HTTP_JarCaching_Filter/classes/N1/MainTest.jar?version-id=1.0.0.0 : null
      network: Sever response: (length: 39, lastModified: Thu Jan 01 08:00:00 CST 1970, downloadVersion: 1.0.0.0, mimeType: application/x-java-jnlp-error)
      com.sun.deploy.net.FailedDownloadException: Unable to load resource: (http://192.168.142.147:8080/HTTP_JarCaching_Filter/classes/N1/MainTest.jar?version-id=1.0.0.0, 1.0.0.0)
          at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source)
          at com.sun.deploy.net.DownloadEngine._downloadCacheEntry(Unknown Source)
          at com.sun.deploy.cache.ResourceProviderImpl.getResourceCacheEntry(Unknown Source)
          at com.sun.deploy.cache.ResourceProviderImpl.getResourceCacheEntry(Unknown Source)
          at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
          at sun.plugin.PluginURLJarFileCallBack$1.run(Unknown Source)
          at java.security.AccessController.doPrivileged(Native Method)
          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)
      Caused by:
      java.io.IOException: Error returned: 11 Could not locate requested version
          at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source)
          at com.sun.deploy.net.DownloadEngine._downloadCacheEntry(Unknown Source)
          at com.sun.deploy.cache.ResourceProviderImpl.getResourceCacheEntry(Unknown Source)
          at com.sun.deploy.cache.ResourceProviderImpl.getResourceCacheEntry(Unknown Source)
          at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
          at sun.plugin.PluginURLJarFileCallBack$1.run(Unknown Source)
          at java.security.AccessController.doPrivileged(Native Method)
          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)
      ===================

      We could reduce the times of attempting to get the MainTest.jar - ideally to once because there's no such a resource with correct version at web side after all.

        Attachments

          Activity

            People

            • Assignee:
              herrick Andy Herrick
              Reporter:
              stephenh Stephen Hu (Inactive)
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:
                Imported:
                Indexed: