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

Java Versioning Spec implementation bug: 1.2.1_02 < 1.2.1_02



    • Type: Bug
    • Status: Closed
    • Priority: P3
    • Resolution: Not an Issue
    • Affects Version/s: 1.3.0_02, 1.3.1
    • Fix Version/s: None
    • Component/s: deploy
    • Labels:
    • Subcomponent:
    • CPU:
    • OS:


      I'm testing the expanded version number support for auto-install. I
      think there's a problem with it. I'm using JPI 1.3.1.

      My app is specifying it requires version 1.2.1_02:

      Manifest-Version: 1.0
      Extension-List: java3d
      java3d-Specification-Version: 1.2
      java3d-Implementation-Version: 1.2.1_02
      java3d-Implementation-URL: http://flute.eng/java3d-$(os.name)$.jar
      java3d-Extension-Name: javax.media.j3d
      Main-Class: HelloUniverse
      java3d-Implementation-Vendor-Id: com.sun

      The installer is downloaded and installed just fine, but when I go back
      to the same URL, it wants to re-install (it says I need a newer
      version). AFAIK it's comparing the required version number to the
      version of the extension by calling
      Package.getImplementationVersion(). This is returning 1.2.1_02 (I
      verified this). The JPI says I need to install a newer version.

      It works fine if I use

      This was on a Windows machine.

      Java Versioning Spec: http://javaweb.eng/release/versioning.html

      OK, I've set up a demonstration of the bug. Get a Windows PC with J2SE 1.3.1 (or whatever version you want to test) and go here:


      You will see Java 3D installed and then the program runs. Then close the browser, start it again, and return to the same URL. You will notice it says you need a newer version of Java 3D, and it will download and install the same version again.

      It takes a while to reproduce the bug - you need to have JPI auto-install working before you can even start, and that's not trivial. Munging manifest files means re-jarring, remaking the installer, re-signing, and re-ftp'ing up to the server.

      Because it's so hard, I wrote a batch file:

      If you want me to change something in the demo, just LMK and I'll make the change and run the script again.

      It's not feasible for me to just attach the files to the bug report. They have to be on a web server to test auto-install (file:// won't work). If you'd like me to upload the files to a different web server, let me know.

      > Hi Paul,
      > Could you send me all the test files to reproduce this bug.
      > I'm getting exceptions when I try to run from
      > http://flute.eng/4466415/HelloUniverse_plugin.html.
      > I'd like to run the test on our server. Plus it will be
      > a good exercise for me to go through all these steps to get more
      > familiar with this.

      When the JPI automatically installs Java 3D, it runs our GUI
      installer. This installer is created with a program we bought called
      InstallAnywhere. Our license for InstallAnywhere only allows it to be
      run on a single machine. They have been bugging me lately for
      "loaning" out our license to other groups (they have an automatic
      detection system) so I'd really rather not have you running it on your
      machine, unless you want to pay $2000 for the license.

      So you can't build your own Java 3D installer so you can't change
      anything in the j3dcore.jar manifest file that holds one of the two
      version numbers being compared.

      You can, however, change the other version number. This is the version
      number in the manifest file of HU.jar. The directory with the batch
      file (see previous email) has all of the files and everything I used to
      create that URL. You can edit the Implementation Version in
      manifest.txt and then re-jar (see the batch file) and ftp up
      to flute (see ftp_jars.txt for the username and password).

      There should be no reason why you would get exceptions at the URL.
      Get a Windows machine (this won't work on Solaris) and
      do Start/Settings/Control Panel/Add/Remove Programs and remove
      everything containing "Java" in the name. Then install Java 1.3.1
      from here:


      Then run your browser and point it at the URL
      It will automatically install Java 3D and run the program. Then hit
      "reload" at same URL and it will tell you you need to upgrade Java 3D.

      I spent all day Friday setting this up so please try to see if you
      can use it to help you find the problem.

      PS If you really need to change the j3dcore.jar manifest file you
      can always un-jar it, edit the manifest, and re-jar it. This is
      exactly what's done in the batch file. However, this won't change
      the version number in the j3dcore.jar installed by the installer.
      To do that, you'd need to re-build the installer. If you need to
      do that, LMK and I'll do it for you over here.


          Issue Links



              mcolburnsunw Michael Colburn (Inactive)
              duke J. Duke (Inactive)
              0 Vote for this issue
              0 Start watching this issue