I went through the [JAR](http://download.oracle.com/javase/1.4.2/docs/guide/jar/jar.html#JAR%20Index) specification document and found that an in-memory `hashtable` is created using `INDEX.LST` file to speed up the class file look up process.

### If any one can answer my following questions -

1. When is the `hashtable` constructed? When the application loads or when the request comes for loading the applet?
2. Since all the classes are already part of the archive, why should one get `InvalidJarIndexException`. How can indexes become invalid? e.g. In my case I get `InvalidJarIndexException` when I use `index=true` along with `indexjars` in my ant build but I do not see any exceptions when indexjars are not used.
3. How should I go about resolving the `InvalidJarIndexException` if I want to stick with indexing?
4. Role of java browser plugin in downloading jar files?