11 Replies Latest reply: Jul 19, 2012 3:04 AM by gimbal2 RSS

    Applet re-downloads .jar files multiple times per session

    950259
      I'm having an issue (firefox+chrome tested) where my Java applet downloads .jar files fully several times in the one session.
      In one case we have a large main .jar file ~650kb that is downloaded, consistently, TWENTY EIGHT times - adding an obviously noticeable delay of about a minute on my connection before the applet appears properly.

      I have a colleague however, who can load the same application online without getting the repeated "cache-not-found" requests.
      He is using Java Plug-in 1.6.0_31 Using JRE version 1.6.0_31-b05, I am with Java Plug-in 10.4.0.22 Using JRE version 1.7.0_04-b22, both W7.

      I'm not sure of the circumstances why the .jars would be requested multiple times in the same invocation?
      Security issue / forgotten option on my Java somewhere?


      I've read the Content-encoding type shouldn't be "null", but the server (tomcat) is serving up .jars with "Content-Type: application/java-archive" according to my Firebug test, it doesn't seem to affect my coworker.

      I'm currently using this old style applet tag, not keen on using .jnlp:
      <embed width="689" height="526" pluginspage="http://java.sun.com/update/1.4.2/j2re-1_4_2-windows-i586.xpi" java_version="1.4.2+" classloader_cache="false" separate_jvm="true" mayscript="true" id="stryker-applet" name="stryker-applet" archive="stryker-applet.jar,jpct-helge.jar,cpp4j.jar,ode4j_core.jar,ode4j_cpp.jar" codebase="./Files/" code="com.proj.applet.StrykerApplet.class" type="application/x-java-applet">


      I've got java consoles of the app loading with network&tracing flags enabled.

      Mine (initial part only - it's quite big, redownloads jars, big delay):
      -----
      basic: Added progress listener: sun.plugin.util.ProgressMonitorAdapter@1a3fb76
      basic: Plugin2ClassLoader.addURL parent called for http://appurl.com:8080/webapp_name/Files/stryker-applet.jar
      basic: Plugin2ClassLoader.addURL parent called for http://appurl.com:8080/webapp_name/Files/jpct-helge.jar
      basic: Plugin2ClassLoader.addURL parent called for http://appurl.com:8080/webapp_name/Files/cpp4j.jar
      basic: Plugin2ClassLoader.addURL parent called for http://appurl.com:8080/webapp_name/Files/ode4j_core.jar
      basic: Plugin2ClassLoader.addURL parent called for http://appurl.com:8080/webapp_name/Files/ode4j_cpp.jar
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/stryker-applet.jar, version: null]
      network: Connecting http://appurl.com:8080/webapp_name/Files/stryker-applet.jar with proxy=DIRECT
      network: Connecting http://appurl.com:8080/ with proxy=DIRECT
      network: Connecting http://appurl.com:8080/webapp_name/Files/stryker-applet.jar with cookie "JSESSIONID=somesessid1; __utma=bla; __utmz=bla.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)"
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/stryker-applet.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/stryker-applet.jar, version: null]
      network: Connecting http://appurl.com:8080/webapp_name/Files/stryker-applet.jar with proxy=DIRECT
      network: Connecting http://appurl.com:8080/webapp_name/Files/stryker-applet.jar with cookie "JSESSIONID=somesessid1; __utma=bla; __utmz=bla.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)"
      network: Downloading resource: http://appurl.com:8080/webapp_name/Files/stryker-applet.jar
           Content-Length: 679,169
           Content-Encoding: null
      security: Blacklist revocation check is enabled
      security: Trusted libraries list check is enabled
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/stryker-applet.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/stryker-applet.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/stryker-applet.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/stryker-applet.jar, version: null]
      security: Accessing keys and certificate in Mozilla user profile: null
      security: Loading Deployment certificates from C:\Users\L450-188\AppData\LocalLow\Sun\Java\Deployment\security\trusted.certs
      security: Loaded Deployment certificates from C:\Users\L450-188\AppData\LocalLow\Sun\Java\Deployment\security\trusted.certs
      security: Loading certificates from Deployment session certificate store
      security: Loaded certificates from Deployment session certificate store
      security: Validate the certificate chain using CertPath API
      security: Loading Root CA certificates from C:\Program Files (x86)\Java\jre7\lib\security\cacerts
      security: Loaded Root CA certificates from C:\Program Files (x86)\Java\jre7\lib\security\cacerts
      security: Obtain certificate collection in Root CA certificate store
      security: Obtain certificate collection in Root CA certificate store
      security: Obtain certificate collection in Root CA certificate store
      security: Obtain certificate collection in Root CA certificate store
      security: The certificate hasnt been expired, no need to check timestamping info
      security: Found jurisdiction list file
      security: No need to checking trusted extension for this certificate
      security: This certificate does not have CRL extension
      security: The CRL support is enabled
      security: Use CRL setting from certificate
      security: The OCSP support is enabled
      security: Use OCSP setting from certificate
      security: This OCSP End Entity validation is disabled
      security: Checking if certificate is in Deployment denied certificate store
      security: Checking if certificate is in Deployment permanent certificate store
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/stryker-applet.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/stryker-applet.jar, version: null]
      network: Connecting http://appurl.com:8080/webapp_name/Files/stryker-applet.jar with proxy=DIRECT
      network: Connecting http://appurl.com:8080/webapp_name/Files/stryker-applet.jar with cookie "JSESSIONID=somesessid1; __utma=bla; __utmz=bla.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)"
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/stryker-applet.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/stryker-applet.jar, version: null]
      network: Connecting http://appurl.com:8080/webapp_name/Files/stryker-applet.jar with proxy=DIRECT
      network: Connecting http://appurl.com:8080/webapp_name/Files/stryker-applet.jar with cookie "JSESSIONID=somesessid1; __utma=bla; __utmz=bla.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)"
      network: Downloading resource: http://appurl.com:8080/webapp_name/Files/stryker-applet.jar
           Content-Length: 679,169
           Content-Encoding: null
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/stryker-applet.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/stryker-applet.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/stryker-applet.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/stryker-applet.jar, version: null]
      security: Validate the certificate chain using CertPath API
      security: The certificate hasnt been expired, no need to check timestamping info
      security: Found jurisdiction list file
      security: No need to checking trusted extension for this certificate
      security: This certificate does not have CRL extension
      security: The CRL support is enabled
      security: Use CRL setting from certificate
      security: The OCSP support is enabled
      security: Use OCSP setting from certificate
      security: This OCSP End Entity validation is disabled
      security: Checking if certificate is in Deployment denied certificate store
      security: Checking if certificate is in Deployment permanent certificate store
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/stryker-applet.jar, version: null]
      basic: Plugin2ClassLoader.getPermissions CeilingPolicy allPerms
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/stryker-applet.jar, version: null]
      network: Connecting http://appurl.com:8080/webapp_name/Files/stryker-applet.jar with proxy=DIRECT
      network: Connecting http://appurl.com:8080/webapp_name/Files/stryker-applet.jar with cookie "JSESSIONID=somesessid1; __utma=bla; __utmz=bla.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)"
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/stryker-applet.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/stryker-applet.jar, version: null]
      network: Connecting http://appurl.com:8080/webapp_name/Files/stryker-applet.jar with proxy=DIRECT
      network: Connecting http://appurl.com:8080/webapp_name/Files/stryker-applet.jar with cookie "JSESSIONID=somesessid1; __utma=bla; __utmz=bla.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)"
      network: Downloading resource: http://appurl.com:8080/webapp_name/Files/stryker-applet.jar
           Content-Length: 679,169
           Content-Encoding: null
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/stryker-applet.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/stryker-applet.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/stryker-applet.jar, version: null]
      security: Validate the certificate chain using CertPath API
      security: The certificate hasnt been expired, no need to check timestamping info
      security: Found jurisdiction list file
      security: No need to checking trusted extension for this certificate
      security: This certificate does not have CRL extension
      security: The CRL support is enabled
      security: Use CRL setting from certificate
      security: The OCSP support is enabled
      security: Use OCSP setting from certificate
      security: This OCSP End Entity validation is disabled
      security: Checking if certificate is in Deployment denied certificate store
      security: Checking if certificate is in Deployment permanent certificate store
      basic: Applet loaded.
      basic: Applet resized and added to parent container
      basic: PERF: AppletExecutionRunnable - applet.init() BEGIN ; jvmLaunch dt 645246 us, pluginInit dt 19318599 us, TotalTime: 19963845 us
      3DSv3 Applet Version 0.6c
      Globals.gBasePage=http://appurl.com:8080/webapp_name/
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/jpct-helge.jar, version: null]
      network: Connecting http://appurl.com:8080/webapp_name/Files/jpct-helge.jar with proxy=DIRECT
      network: Connecting http://appurl.com:8080/webapp_name/Files/jpct-helge.jar with cookie "JSESSIONID=somesessid1; __utma=bla; __utmz=bla.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)"
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/jpct-helge.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/jpct-helge.jar, version: null]
      network: Connecting http://appurl.com:8080/webapp_name/Files/jpct-helge.jar with proxy=DIRECT
      network: Connecting http://appurl.com:8080/webapp_name/Files/jpct-helge.jar with cookie "JSESSIONID=somesessid1; __utma=bla; __utmz=bla.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)"
      network: Downloading resource: http://appurl.com:8080/webapp_name/Files/jpct-helge.jar
           Content-Length: 290,920
           Content-Encoding: null
      security: The jar file isnt signed so the blacklist check will be skipped
      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: http://appurl.com:8080/webapp_name/Files/jpct-helge.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/jpct-helge.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/jpct-helge.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/jpct-helge.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/cpp4j.jar, version: null]
      network: Connecting http://appurl.com:8080/webapp_name/Files/cpp4j.jar with proxy=DIRECT
      network: Connecting http://appurl.com:8080/webapp_name/Files/cpp4j.jar with cookie "JSESSIONID=somesessid1; __utma=bla; __utmz=bla.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)"
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/cpp4j.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/cpp4j.jar, version: null]
      network: Connecting http://appurl.com:8080/webapp_name/Files/cpp4j.jar with proxy=DIRECT
      network: Connecting http://appurl.com:8080/webapp_name/Files/cpp4j.jar with cookie "JSESSIONID=somesessid1; __utma=bla; __utmz=bla.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)"
      network: Downloading resource: http://appurl.com:8080/webapp_name/Files/cpp4j.jar
           Content-Length: 34,232
           Content-Encoding: null
      security: The jar file isnt signed so the blacklist check will be skipped
      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: http://appurl.com:8080/webapp_name/Files/cpp4j.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/cpp4j.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/cpp4j.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/cpp4j.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/ode4j_core.jar, version: null]
      network: Connecting http://appurl.com:8080/webapp_name/Files/ode4j_core.jar with proxy=DIRECT
      network: Connecting http://appurl.com:8080/webapp_name/Files/ode4j_core.jar with cookie "JSESSIONID=somesessid1; __utma=bla; __utmz=bla.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)"
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/ode4j_core.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/ode4j_core.jar, version: null]
      network: Connecting http://appurl.com:8080/webapp_name/Files/ode4j_core.jar with proxy=DIRECT
      network: Connecting http://appurl.com:8080/webapp_name/Files/ode4j_core.jar with cookie "JSESSIONID=somesessid1; __utma=bla; __utmz=bla.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)"
      network: Downloading resource: http://appurl.com:8080/webapp_name/Files/ode4j_core.jar
           Content-Length: 569,452
           Content-Encoding: null
      security: The jar file isnt signed so the blacklist check will be skipped
      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: http://appurl.com:8080/webapp_name/Files/ode4j_core.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/ode4j_core.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/ode4j_core.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/ode4j_core.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/jpct-helge.jar, version: null]
      network: Connecting http://appurl.com:8080/webapp_name/Files/jpct-helge.jar with proxy=DIRECT
      network: Connecting http://appurl.com:8080/webapp_name/Files/jpct-helge.jar with cookie "JSESSIONID=somesessid1; __utma=bla; __utmz=bla.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)"
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/jpct-helge.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/jpct-helge.jar, version: null]
      network: Connecting http://appurl.com:8080/webapp_name/Files/jpct-helge.jar with proxy=DIRECT
      network: Connecting http://appurl.com:8080/webapp_name/Files/jpct-helge.jar with cookie "JSESSIONID=somesessid1; __utma=bla; __utmz=bla.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)"
      network: Downloading resource: http://appurl.com:8080/webapp_name/Files/jpct-helge.jar
           Content-Length: 290,920
           Content-Encoding: null
      security: The jar file isnt signed so the blacklist check will be skipped
      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: http://appurl.com:8080/webapp_name/Files/jpct-helge.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/jpct-helge.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/jpct-helge.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/cpp4j.jar, version: null]
      network: Connecting http://appurl.com:8080/webapp_name/Files/cpp4j.jar with proxy=DIRECT
      network: Connecting http://appurl.com:8080/webapp_name/Files/cpp4j.jar with cookie "JSESSIONID=somesessid1; __utma=bla; __utmz=bla.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)"
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/cpp4j.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/cpp4j.jar, version: null]
      network: Connecting http://appurl.com:8080/webapp_name/Files/cpp4j.jar with proxy=DIRECT
      network: Connecting http://appurl.com:8080/webapp_name/Files/cpp4j.jar with cookie "JSESSIONID=somesessid1; __utma=bla; __utmz=bla.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)"
      network: Downloading resource: http://appurl.com:8080/webapp_name/Files/cpp4j.jar
           Content-Length: 34,232
           Content-Encoding: null
      security: The jar file isnt signed so the blacklist check will be skipped
      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: http://appurl.com:8080/webapp_name/Files/cpp4j.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/cpp4j.jar, version: null]
      network: Cache entry not found [url: http://appurl.com:8080/webapp_name/Files/cpp4j.jar, version: null]
      ...
      ------

      Coworker (downloading normally):

      basic: Added progress listener: sun.plugin.util.GrayBoxPainter$GrayBoxProgressListener@16a9d42
      basic: Plugin2ClassLoader.addURL parent called for http://appurl.com:8080/webapp_name/Files/stryker-applet.jar
      basic: Plugin2ClassLoader.addURL parent called for http://appurl.com:8080/webapp_name/Files/jpct-helge.jar
      basic: Plugin2ClassLoader.addURL parent called for http://appurl.com:8080/webapp_name/Files/cpp4j.jar
      basic: Plugin2ClassLoader.addURL parent called for http://appurl.com:8080/webapp_name/Files/ode4j_core.jar
      basic: Plugin2ClassLoader.addURL parent called for http://appurl.com:8080/webapp_name/Files/ode4j_cpp.jar
      network: Connecting http://appurl.com:8080/webapp_name/Files/stryker-applet.jar with proxy=DIRECT
      network: Connecting http://appurl.com:8080/ with proxy=DIRECT
      network: Connecting http://appurl.com:8080/webapp_name/Files/stryker-applet.jar with cookie "JSESSIONID=somesessid2"
      network: Downloading resource: http://appurl.com:8080/webapp_name/Files/stryker-applet.jar
           Content-Length: 679,169
           Content-Encoding: null
      security: Blacklist revocation check is enabled
      security: Accessing keys and certificate in Mozilla user profile: null
      security: Loading Root CA certificates from C:\Program Files (x86)\Java\jre6\lib\security\cacerts
      security: Loaded Root CA certificates from C:\Program Files (x86)\Java\jre6\lib\security\cacerts
      security: Loading Deployment certificates from C:\Users\Owner\AppData\LocalLow\Sun\Java\Deployment\security\trusted.certs
      security: Loaded Deployment certificates from C:\Users\Owner\AppData\LocalLow\Sun\Java\Deployment\security\trusted.certs
      security: Loading certificates from Deployment session certificate store
      security: Loaded certificates from Deployment session certificate store
      security: Validate the certificate chain using CertPath API
      security: Obtain certificate collection in Root CA certificate store
      security: Obtain certificate collection in Root CA certificate store
      security: Start to check whether root CA is replaced
      security: The root CA hasnt been replaced
      security: No timestamping info available
      security: Found jurisdiction list file
      security: No need to checking trusted extension for this certificate
      security: The CRL support is disabled
      security: The OCSP support is disabled
      security: This OCSP End Entity validation is disabled
      security: Checking if certificate is in Deployment denied certificate store
      security: Checking if certificate is in Deployment permanent certificate store
      security: Loading certificates from Deployment session certificate store
      security: Loaded certificates from Deployment session certificate store
      security: Validate the certificate chain using CertPath API
      security: Obtain certificate collection in Root CA certificate store
      security: Obtain certificate collection in Root CA certificate store
      security: Start to check whether root CA is replaced
      security: The root CA hasnt been replaced
      security: No timestamping info available
      security: Found jurisdiction list file
      security: No need to checking trusted extension for this certificate
      security: The CRL support is disabled
      security: The OCSP support is disabled
      security: This OCSP End Entity validation is disabled
      security: Checking if certificate is in Deployment denied certificate store
      security: Checking if certificate is in Deployment permanent certificate store
      basic: Plugin2ClassLoader.getPermissions CeilingPolicy allPerms
      security: Loading certificates from Deployment session certificate store
      security: Loaded certificates from Deployment session certificate store
      security: Validate the certificate chain using CertPath API
      security: Obtain certificate collection in Root CA certificate store
      security: Obtain certificate collection in Root CA certificate store
      security: Start to check whether root CA is replaced
      security: The root CA hasnt been replaced
      security: No timestamping info available
      security: Found jurisdiction list file
      security: No need to checking trusted extension for this certificate
      security: The CRL support is disabled
      security: The OCSP support is disabled
      security: This OCSP End Entity validation is disabled
      security: Checking if certificate is in Deployment denied certificate store
      security: Checking if certificate is in Deployment permanent certificate store
      basic: Applet loaded.
      basic: Applet resized and added to parent container
      basic: PERF: AppletExecutionRunnable - applet.init() BEGIN ; jvmLaunch dt 112484 us, pluginInit dt 3079987 us, TotalTime: 3192471 us
      3DSv3 Applet Version 0.6c
      Globals.gBasePage=http://appurl.com:8080/webapp_name/
      network: Connecting http://appurl.com:8080/webapp_name/Files/jpct-helge.jar with proxy=DIRECT
      network: Connecting http://appurl.com:8080/webapp_name/Files/jpct-helge.jar with cookie "JSESSIONID=somesessid2"
      network: Downloading resource: http://appurl.com:8080/webapp_name/Files/jpct-helge.jar
           Content-Length: 290,920
           Content-Encoding: null
      network: Connecting http://appurl.com:8080/webapp_name/Files/cpp4j.jar with proxy=DIRECT
      network: Connecting http://appurl.com:8080/webapp_name/Files/cpp4j.jar with cookie "JSESSIONID=somesessid2"
      network: Downloading resource: http://appurl.com:8080/webapp_name/Files/cpp4j.jar
           Content-Length: 34,232
           Content-Encoding: null
      network: Connecting http://appurl.com:8080/webapp_name/Files/ode4j_core.jar with proxy=DIRECT
      network: Connecting http://appurl.com:8080/webapp_name/Files/ode4j_core.jar with cookie "JSESSIONID=somesessid2"
      network: Downloading resource: http://appurl.com:8080/webapp_name/Files/ode4j_core.jar
           Content-Length: 569,452
           Content-Encoding: null

      ASSERTM: Error: 62:47
      basic: Applet initialized
      basic: Loading Java Applet ...
      basic: Removed progress listener: sun.plugin.util.GrayBoxPainter$GrayBoxProgressListener@16a9d42
      -----
        • 1. Re: Applet re-downloads .jar files multiple times per session
          950259
          I've found what was making the difference between us.
          In control panel/java/general tab/temporary internet files, I have "Keep temporary Internet files on my computer" checked, and he did not.

          Without this option selected, the applet starts right up on my computer too and our consoles are now very similar with no "cache entry not found" outputs.

          But I'm still not sure why this option would cause it to request the same .jar file over and over?

          regards,
          Jamie
          • 2. Re: Applet re-downloads .jar files multiple times per session
            sabre150
            947256 wrote:
            In control panel/java/general tab/temporary internet files, I have "Keep temporary Internet files on my computer" checked, and he did not.

            Without this option selected, the applet starts right up on my computer too and our consoles are now very similar with no "cache entry not found" outputs.
            Interesting - seems back to front since not having it check would imply that the jar had to be downloaded every time not the other way round!
            • 3. Re: Applet re-downloads .jar files multiple times per session
              gimbal2
              Yes but the problem seems to be that with the check on the files download repeatedly; the problem seems to be with the caching itself which is somehow failing.

              But yeah... its Java 7 update 4 when update 5 is the latest. You can reason and guess all you want but it might as well be a bug that has already been fixed. I'd upgrade to the latest first (with matching browser plugin of course) and if it persists only then it is time to do some deeper digging.
              • 4. Re: Applet re-downloads .jar files multiple times per session
                950259
                Ok I updated to "Java Plug-in 10.5.1.255 Using JRE version 1.7.0_05-b06", still having the issue with caching turned on.

                Can you tell me if the default Java install is to have 'keep temporary files' checked?

                Maybe there are some test applets online I can compare console outputs with?
                • 5. Re: Applet re-downloads .jar files multiple times per session
                  gimbal2
                  947256 wrote:
                  Can you tell me if the default Java install is to have 'keep temporary files' checked?
                  If you didn't change anything then yes - simple reasoning :) I'd have to check at home, I don't have Java 7 installed at work. My Java 6 installation has it checked and I don't have a habit of changing around java console settings. I don't know any test applets other than really really old ones that are used in the applet tutorials, you'd have to look for some free Java games or something. Pretty sure you'll find some in the showcases on java-gaming.org.

                  Can you reproduce the problem on another computer with the same runtime version and the same applet? And what I'm also curious about is: if that other dude with the Java 6 installation checks the checkbox, does he get misery then as well?
                  • 6. Re: Applet re-downloads .jar files multiple times per session
                    817614
                    If you enable all tracing (level 5 - or edit deployment.properties file with deployment.caching.level=all), there might be more info into why cache not found.
                    • 7. Re: Applet re-downloads .jar files multiple times per session
                      950259
                      Yes he does get the same issue with it enabled, albeit his connection is a lot faster so the delay is lesser. We've also got a few other guys to confirm it too.

                      Interestingly the .jar files don't appear in my Temporary Internet Files 'view' list after running the application.. I can see other apps appearing in there.

                      I tried a few example games on that site and didn't see anything similar happening.

                      Also removed the signing on the applet and changed the embed code without improving things:
                      <embed code="com.app.StrykerApplet.class" codebase="./Files/" archive="stryker-applet.jar,jpct-helge.jar,cpp4j.jar,ode4j_core.jar,ode4j_cpp.jar" name="stryker-applet" id="stryker-applet" separate_jvm="true" type="application/x-java-applet;version=1.7" pluginspage="http://java.sun.com/javase/downloads/ea.jsp" height="526" width="689">


                      (level5 didn't seem to give me any more output, using args "-Djavaplugin.trace\=true -Djavaplugin.trace.option\=basic|net|cache|security|ext|liveconnect|temp")
                      • 8. Re: Applet re-downloads .jar files multiple times per session
                        gimbal2
                        947256 wrote:
                        I tried a few example games on that site and didn't see anything similar happening.
                        Probably because the applets are deployed differently, like through the JNLP file you don't seem to want to become friends with.

                        http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/index.html
                        • 9. Re: Applet re-downloads .jar files multiple times per session
                          817264
                          Caching behavior depends on http headers. Please install http traffic sniffer (e.g. wireshark) and capture requests for these jars.
                          Please post request/response headers here.
                          • 10. Re: Applet re-downloads .jar files multiple times per session
                            950259
                            Thanks for the pointer! yep I checked it in Wireshark and the "Expires"/"Cache-Control" header was being set way in the past by a hidden Tomcat filter.
                            So that must override the cache checkbox for .jar files.
                            It loads with or without the Temporary file cache checkbox now.

                            Cheers guys,
                            Jamie
                            • 11. Re: Applet re-downloads .jar files multiple times per session
                              gimbal2
                              947256 wrote:
                              Thanks for the pointer! yep I checked it in Wireshark and the "Expires"/"Cache-Control" header was being set way in the past by a hidden Tomcat filter.
                              So that must override the cache checkbox for .jar files.
                              It loads with or without the Temporary file cache checkbox now.

                              Cheers guys,
                              Jamie
                              Wow, that is something to remember! It is quite common to install a filter that disables caching to prevent problems with dynamically generated pages. Thanks for the insight Igor.