Author: bodewig
Date: Tue Apr  7 14:31:33 2009
New Revision: 762792

URL: http://svn.apache.org/viewvc?rev=762792&view=rev
Log:
Make ChangeSet work for empty initial archives

Modified:
    
commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/changes/ChangeSet.java

Modified: 
commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/changes/ChangeSet.java
URL: 
http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/changes/ChangeSet.java?rev=762792&r1=762791&r2=762792&view=diff
==============================================================================
--- 
commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/changes/ChangeSet.java
 (original)
+++ 
commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/changes/ChangeSet.java
 Tue Apr  7 14:31:33 2009
@@ -53,6 +53,15 @@
 
     public void perform(ArchiveInputStream in, ArchiveOutputStream out)
             throws IOException {
+        for (Iterator it = changes.iterator(); it.hasNext();) {
+            Change change = (Change) it.next();
+
+            if (change.type() == Change.TYPE_ADD) {
+                copyStream(change.getInput(), out, change.getEntry());
+                it.remove();
+            }
+        }
+
         ArchiveEntry entry = null;
         while ((entry = in.getNextEntry()) != null) {
             boolean copy = true;
@@ -60,11 +69,6 @@
             for (Iterator it = changes.iterator(); it.hasNext();) {
                 Change change = (Change) it.next();
 
-                if (change.type() == Change.TYPE_ADD) {
-                    copyStream(change.getInput(), out, change.getEntry());
-                    it.remove();
-                }
-
                 if (change.type() == Change.TYPE_DELETE
                         && entry.getName() != null) {
                     if (entry.getName().equals(change.targetFile())) {


Reply via email to