DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22967>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22967 <jar> permits duplicated manifest attributes in violation of the manifest specification Summary: <jar> permits duplicated manifest attributes in violation of the manifest specification Product: Ant Version: 1.5.1 Platform: All OS/Version: All Status: NEW Severity: Normal Priority: Other Component: Core tasks AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] The situation here is a little confused because bug #10063 reports the *opposite* as a bug (which IMHO it is not). In Ant 1.4.1 the following script: <project default="x"> <target name="x"> <jar jarfile="foo.jar" manifest="foo.mf" includes="somefile..." basedir="."/> </target> </project> with the manifest: ---%<--- Manifest-Version: 1.0 Class-Path: a.jar Class-Path: b.jar ---%<--- fails: Manifest is invalid: The attribute "Class-Path" may not occur more than once in the same section This behavior is IMHO correct, according to the published manifest specification: http://java.sun.com/j2se/1.4.2/docs/guide/jar/jar.html which states in the section "Notes on Manifest and Signature Files" quite explicitly: "Attribute names cannot be repeated within a section." And in fact in JDK 1.4.2 the jar tool does accept the above manifest, but with a printed warning to console, and only the second attr (b.jar) is used: Sep 7, 2003 10:16:30 AM java.util.jar.Attributes read WARNING: Duplicate name in Manifest: Class-Path However in Ant 1.5.x, the manifest is not only accepted, the resulting manifest placed in foo.jar is syntactically invalid (e.g. running java -jar foo.jar will print the same warning as above). Bug #10063 says that http://java.sun.com/docs/books/tutorial/ext/basics/download.html claims that you can use multiple Class-Path attributes. This is so, but the tutorial is simply wrong. It is only a tutorial; it is contradicted by the normative specification. Bug #22816 also requests related changes, with the cryptic note "even though the use of multiple Class-Path: attributes is somewhat obscure because I need them" Why? It is specified that you only need one Class-Path attribute and that the values should be separated by spaces. IMHO the <jar> and <manifest> tasks should obey the manifest specification exactly as written. If anyone has some strange need for nonstandard behavior, they are free to create a manifest as a text file some other way and include it in a <zip> as an undistinguished META-INF/MANIFEST.MF entry. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]