DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUGĀ· RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://issues.apache.org/bugzilla/show_bug.cgi?id=37237>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED ANDĀ· INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=37237 Summary: JAR_MARKER added in 1.6.3 breaks indexjar element in jar task Product: Ant Version: 1.6.3 Platform: PC OS/Version: Windows XP Status: NEW Severity: normal Priority: P2 Component: Core tasks AssignedTo: dev@ant.apache.org ReportedBy: [EMAIL PROTECTED] CC: [EMAIL PROTECTED] A project I work on uses an indexed jar file. This builds perfectly under Ant 1.6.2 and earlier, but under 1.6.3 and later it breaks with the error message: Z:\uwa\Build\build.jars.xml:163: java.lang.RuntimeException: data starting at 0 is in unknown format That error message comes from ExtraFieldUtils.parse(byte[]). The line complained about is the "jar" task. To simplify, part of this ant target is: <delete file="${agent.lib}/agent.jar" failonerror="false"/> <delete file="${agent.lib}/agent.jar"/> <jar jarfile="${agent.lib}/agent.jar" manifest="META-INF/manifest.mf" index="true"> <fileset dir="${classes}/"> <include name="${stemDir}/agent/**/*.class"/> <include name="${stemDir}/agent/i18n/*.properties"/> </fileset> <!-- Dependencies outside the agent source tree --> <fileset dir="${srcdir}"> <include name="META-INF/services/org.apache.commons.logging.LogFactory"/> </fileset> <indexjars> <fileset file="${agent.lib}/client.jar"/> <fileset dir="${libdir}/"> <include name="commons-codec.jar"/> <include name="commons-httpclient.jar"/> <include name="commons-logging.jar"/> <include name="jakarta-oro.jar"/> <include name="log4j.jar"/> </fileset> </indexjars> </jar> Looking at the source for 1.6.5 (since it is the most recent release) I find if I comment out two lines added to org.apache.tools.ant.taskdefs.Jar in 1.6.3, then I do not have this breakage. I comment out the lines: zipDir(null, zOut, "META-INF/", ZipFileSet.DEFAULT_DIR_MODE, JAR_MARKER); Obviously, this is not the correct fix, but I am hoping that someone who is familiar with this code will immediately see what is causing this problem with jar indexing. The JAR_MARKER's ID is 0xCAFE. If in ExtraFieldUtils.parse(byte[]) I dump the byte array coming in, the byte array is zero length for absolutely every invocation except one -- the META_INF directory. For this directory, the data array contains the values 0, 4, -2, -54 (or 4, 0, -2, -54 ... I don't remember the order of the first two, just the values). If I translate the last two into hex, I see 0xFE, 0xCA, aka 0xCAFE, the ID from the JarMarker class. If I remove the indexjars element from the jar task, but leave the index="true" attribute, I do not get this error. This error occurs only when the indexjars element is present for ANT 1.6.3 and later. I have not tested the current SVN version. I've searched the bug database for anything like this and have not found anything. -- Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]