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}"/>


Reply via email to