Author: bodewig
Date: Wed Jul 15 10:10:54 2009
New Revision: 794212
URL: http://svn.apache.org/viewvc?rev=794212&view=rev
Log:
new zip logic bypassed overridden method in jar and broke manifest/index logic
Modified:
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Jar.java
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Zip.java
ant/core/trunk/src/tests/antunit/taskdefs/jar-test.xml
Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Jar.java
URL:
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Jar.java?rev=794212&r1=794211&r2=794212&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Jar.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Jar.java Wed Jul 15
10:10:54 2009
@@ -462,7 +462,7 @@
super.zipFile(is, zOut,
"META-INF/services/" + service.getType(),
System.currentTimeMillis(), null,
- ZipFileSet.DEFAULT_FILE_MODE);
+ ZipFileSet.DEFAULT_FILE_MODE, null);
} finally {
// technically this is unnecessary since
// Service.getAsStream returns a ByteArrayInputStream
@@ -550,7 +550,7 @@
try {
super.zipFile(bais, zOut, MANIFEST_NAME,
System.currentTimeMillis(), null,
- ZipFileSet.DEFAULT_FILE_MODE);
+ ZipFileSet.DEFAULT_FILE_MODE, null);
} finally {
// not really required
FileUtils.close(bais);
@@ -638,7 +638,7 @@
new ByteArrayInputStream(baos.toByteArray());
try {
super.zipFile(bais, zOut, INDEX_NAME, System.currentTimeMillis(),
- null, ZipFileSet.DEFAULT_FILE_MODE);
+ null, ZipFileSet.DEFAULT_FILE_MODE, null);
} finally {
// not really required
FileUtils.close(bais);
@@ -658,7 +658,8 @@
* @throws IOException on error
*/
protected void zipFile(InputStream is, ZipOutputStream zOut, String vPath,
- long lastModified, File fromArchive, int mode)
+ long lastModified, File fromArchive, int mode,
+ ZipExtraField[] extra)
throws IOException {
if (MANIFEST_NAME.equalsIgnoreCase(vPath)) {
if (isFirstPass()) {
@@ -673,7 +674,8 @@
if (index && vPath.indexOf("/") == -1) {
rootEntries.addElement(vPath);
}
- super.zipFile(is, zOut, vPath, lastModified, fromArchive, mode);
+ super.zipFile(is, zOut, vPath, lastModified, fromArchive, mode,
+ extra);
}
}
Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Zip.java
URL:
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Zip.java?rev=794212&r1=794211&r2=794212&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Zip.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Zip.java Wed Jul 15
10:10:54 2009
@@ -921,7 +921,9 @@
? fileMode : getUnixMode(resources[i], zf,
fileMode);
addResource(resources[i], name, prefix,
- zOut, thisFileMode, zf);
+ zOut, thisFileMode, zf,
+ zfs == null
+ ? null : zfs.getSrc(getProject()));
}
}
}
@@ -982,7 +984,7 @@
*/
private void addResource(Resource r, String name, String prefix,
ZipOutputStream zOut, int mode,
- ZipFile zf)
+ ZipFile zf, File fromArchive)
throws IOException {
if (zf != null) {
@@ -997,7 +999,7 @@
try {
is = zf.getInputStream(ze);
zipFile(is, zOut, prefix + name, ze.getTime(),
- mode, ze.getExtraFields());
+ fromArchive, mode, ze.getExtraFields());
} finally {
doCompress = oldCompress;
FileUtils.close(is);
@@ -1008,7 +1010,7 @@
try {
is = r.getInputStream();
zipFile(is, zOut, prefix + name, r.getLastModified(),
- mode, r instanceof ZipResource
+ fromArchive, mode, r instanceof ZipResource
? ((ZipResource) r).getExtraFields() : null);
} finally {
FileUtils.close(is);
@@ -1065,7 +1067,7 @@
} else {
addResource(resources[i], name, "", zOut,
ArchiveFileSet.DEFAULT_FILE_MODE,
- null);
+ null, null);
}
}
}
@@ -1639,11 +1641,9 @@
* @throws IOException on error
*/
protected void zipFile(InputStream in, ZipOutputStream zOut, String vPath,
- long lastModified,
- /* unused, BWC */ File fromArchive,
- int mode)
+ long lastModified, File fromArchive, int mode)
throws IOException {
- zipFile(in, zOut, vPath, lastModified, mode, null);
+ zipFile(in, zOut, vPath, lastModified, fromArchive, mode, null);
}
/**
@@ -1663,8 +1663,12 @@
* @throws IOException on error
*/
protected void zipFile(InputStream in, ZipOutputStream zOut, String vPath,
- long lastModified, int mode, ZipExtraField[] extra)
+ long lastModified, File fromArchive,
+ int mode, ZipExtraField[] extra)
throws IOException {
+
+ // fromArchive is used in subclasses overriding this method
+
if (entries.contains(vPath)) {
if (duplicate.equals("preserve")) {
Modified: ant/core/trunk/src/tests/antunit/taskdefs/jar-test.xml
URL:
http://svn.apache.org/viewvc/ant/core/trunk/src/tests/antunit/taskdefs/jar-test.xml?rev=794212&r1=794211&r2=794212&view=diff
==============================================================================
--- ant/core/trunk/src/tests/antunit/taskdefs/jar-test.xml (original)
+++ ant/core/trunk/src/tests/antunit/taskdefs/jar-test.xml Wed Jul 15 10:10:54
2009
@@ -87,7 +87,7 @@
resource="${output}/META-INF/INDEX.LIST"/>
</target>
- <target name="testMergeWithouMain"
+ <target name="testMergeWithoutMain"
description="https://issues.apache.org/bugzilla/show_bug.cgi?id=29731">
<mkdir dir="${input}"/>
<mkdir dir="${output}"/>