That file ordering is done by the JDK's jar tool.
http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/jar.html#description
"A manifest file entry named META-INF/MANIFEST.MF is automatically
generated by the jar tool and is always the first entry in the jar file."
You can fix the JAR by unjarring and jarring. You might try using the
verify option to see if jar tool will complain about those bad files.
I think jarsigner would also fix up those files for you.
Naturally everyone that publishes artifacts should sign them, but that
obviously isn't the way it is.
Filing an issue upstream would be good too.
Jim
Edelson, Justin wrote:
I'm seeing a problem with the BootstrapInstaller class that I'm
wondering if others have run across. BootstrapInstaller needs to get the
manifest of each boostrapped bundle in order to evaluate whether or not
the bundle has already been installed (and if it has, if the
bootstrapped bundle is newer). In order to get the manifest, it uses
JarInputStream. JarInputStream assumes that the MANIFEST.MF file is the
first or second entry in the JAR file. However, I've found at least one
case where this isn't true
(http://repo2.maven.org/maven2/org/springframework/security/spring-secur
ity-core/2.0.5.RELEASE/spring-security-core-2.0.5.RELEASE.jar). I didn't
find anything in the JAR spec that specifically says it needs to be the
first or second entry.
The only workaround I can see is to use JarFile, but that may mean the
use of some temporary files if the JAR isn't accessible as a file.
Any thoughts?
Thanks,
Justin