Name: gm110360 Date: 09/24/2002
FULL PRODUCT VERSION :
java version "1.4.0_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0_01-b03)
Java HotSpot(TM) Client VM (build 1.4.0_01-b03, mixed mode)
FULL OPERATING SYSTEM VERSION :
Windows NT Version 4.0
with Service Pack 6
A DESCRIPTION OF THE PROBLEM :
If I specify jars for the Class-Path attribute as well as
Extensions using the Extension-List attribute and then index
the jar file the Extensions are never installed.
The index seems to be built up correctly, but only includes
the information from the jars specifed in the Class-Path
attribute, not those in the Extension List.
If I use exactly the same manifest file, but do not index
the applet jar, the extensions are installed.
An example of the Manifest file (Excluding the signed data) :
Manifest-Version: 1.0
vbj-Specification-Version: 1.0
oromatcher-Implementation-URL:
http://webdev.scmb.co.za/framework/OROM
atcher.jar
kiwi-Implemenation-Vendor-Id: kiwi
xerces-Extension-Name: org.apache.xerces
scmbsec-Extension-Name: SCMB_Corba_Security
xerces-Implementation-URL:
http://webdev.scmb.co.za/framework/xerces.j
ar
scmbsec-Implementation-URL:
http://webdev.scmb.co.za/framework/scmbsec
.jar
kiwi-Specification-Version: 1.0
jgl-Implemenation-Version: 1.0
xerces-Implemenation-Version: 1.0
scmbsec-Implemenation-Version: 1.0
Extension-List: oromatcher jbcl jgl kiwi vbj xerces scmbsec
jbcl-Implemenation-Vendor-Id: com.borland
oromatcher-Implemenation-Version: 1.0
jbcl-Specification-Version: 1.0
vbj-Implemenation-Version: 1.0
Created-By: 1.4.0 (Sun Microsystems Inc.)
Sealed: false
Class-Path: shared.jar icm.jar
jgl-Implemenation-Vendor-Id: com.objectspace
jgl-Extension-Name: com.objectspace
scmbsec-Implemenation-Vendor-Id: SCMB
xerces-Implemenation-Vendor-Id: org.apache.xerces
kiwi-Extension-Name: kiwi
kiwi-Implemenation-Version: 1.0
jgl-Implementation-URL:
http://webdev.scmb.co.za/framework/JGL.jar
kiwi-Implementation-URL:
http://webdev.scmb.co.za/framework/kiwi.jar
jgl-Specification-Version: 1.0
oromatcher-Implemenation-Vendor-Id: com.oroinc
xerces-Specification-Version: 1.0
scmbsec-Specification-Version: 1.0
vbj-Extension-Name: com.visigenic
vbj-Implemenation-Vendor-Id: com.visigenic
oromatcher-Specification-Version: 1.0
jbcl-Extension-Name: com.borland
jbcl-Implemenation-Version: 1.0
vbj-Implementation-URL:
http://webdev.scmb.co.za/framework/VBJ.jar
oromatcher-Extension-Name: com.oroinc
jbcl-Implementation-URL:
http://webdev.scmb.co.za/framework/JBCL.jar
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. Create an installable extension jar file.
2. Create a downloadable extension jar file.
3. Create a manifest file referencing the fist jar file as
part of the Extension-List attribute
4. Add the Class-Path Attribute to the manaifest specifying
the downloadable extension jar file.
5. Create a jar file contianing a applet that references
classes form both jar files.
6. Create a Jar file for the Applet specifing the Manifest
file you created.
7. Index the Applet Jar file. Make sure all the jars are
available.
8. Sign all the jar files.
9. Distribute the jars to the web server.
10. Create an html page that references only the Applet Jar
file in the Archive Tag.
11. Load the HTML page in your browser.
EXPECTED VERSUS ACTUAL BEHAVIOR :
The downloadable jars are downloaded and installed in the
plugins cache. The Installable jars however aren't
downloaded and the applet terminates with a NoClassDefFound
exception.
A dialog should apear prompting the user to install the
extensions. Once these are installed the applet should
execute as expected.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
The error is a simple NoClassDefFound for whatever classes happen to be in the
Extension Jar file that are required by the applet.
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
The Bug is not code specific and I've included a copy of my manifest file above.
---------- END SOURCE ----------
CUSTOMER WORKAROUND :
When I don't index the file, the extensions install, but I
receive other NoClassDefFound exceptions. The only way
overcome these is to not have a combination of Class-Path
jars and Extension-List jars.
(Review ID: 160091)
======================================================================