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

Java Web Start doesn't check time stamp of nested JNLP files

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • P3
    • 6u10
    • 6u1
    • deploy
    • generic
    • generic

    Description

      Java Web Start in JDK6 doesn't check time stamp of nested JNLP files. This is regression, since it works fine in JDK 5.

      For example, if the application JNLP file looks like this:

      <jnlp ...>
         <resource>
            <jar href="my-app.jar" main="true"/>
            <extension href="http://some.where.com/my-library.jnlp"/>
         </resource>
         ...
      </jnlp>

      the application JNLP file and the "some.where.com/my-library.jnlp" file will be cached. If the "some.where.com/my-library.jnlp" file is subsequently updated, the cache will not be re-validated, and the old version of the JNLP file will be used. This can cause the application to fail if the resources referred to by the old JNLP file are modified or removed.

      We have set up a test case using Java 3D that you can use to diagnose the problem. You will need to copy the following .zip file to your server, unzip it, and modify the codebase in the four JNLP files as described below. Here is the pointer to the zip bundle:

      http://download.java.net/media/java3d/webstart/prototype/cache-bug.zip

      The directory structure is:

      cache-bug/
        early-access/
          java3d-1.5.0.jnlp -- Java 3D 1.5.0 library JNLP file
          java3d-1.5.1.jnlp -- Java 3D 1.5.1 library JNLP file
          java3d-latest.jnlp -- actual JNLP extension file, a copy of 1.5.0 or 1.5.1
          use-1.5.0 -- script to copy 1.5.0 to latest
          use-1.5.1 -- script to copy 1.5.1 to latest
          ...

        test/
          QueryProperties.jnlp -- application JNLP file
          HelloUniverse.jnlp -- another application JNLP file
          ...

      After you have modified the codebase in QueryProperties.jnlp java3d-1.5.0.jnlp and java3d-1.5.1.jnlp (and optionally HelloUniverse.jnlp), you should do the following:

      cd .../early-access
      ./use-1.5.0 # this will copy 1.5.0 to latest

      javaws http://your.server.com/your-base-dir/cache-bug/test/QueryProperties.jnlp

      You will see the following line at the top of the scrollable text window:

      "j3d.version = 1.5.0 fcs (build8)"

      If you then run the command "./use-1.5.1" from the early-access directory, which will update the java3d-latest.jnlp file, and rerun the QueryProperties demo, you should see the following:

      "j3d.version = 1.5.1-beta2 (build5) 31 May 2007 14:01:07 PDT"

      This works on JDK 5. You get the old version on JDK 6.

      Attachments

        Issue Links

          Activity

            People

              sgothelsunw Sven Gothel (Inactive)
              kcr Kevin Rushforth
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: