You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2009/04/15 14:49:10 UTC

svn commit: r765168 - in /commons/proper/compress/trunk/src: main/java/org/apache/commons/compress/changes/ChangeSetPerformer.java test/java/org/apache/commons/compress/changes/ChangeSetTestCase.java

Author: sebb
Date: Wed Apr 15 12:49:09 2009
New Revision: 765168

URL: http://svn.apache.org/viewvc?rev=765168&view=rev
Log:
Should only delete directories if type = DELETE_DIRECTORY
Fix corresponding errors in test cases

Modified:
    commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/changes/ChangeSetPerformer.java
    commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/changes/ChangeSetTestCase.java

Modified: commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/changes/ChangeSetPerformer.java
URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/changes/ChangeSetPerformer.java?rev=765168&r1=765167&r2=765168&view=diff
==============================================================================
--- commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/changes/ChangeSetPerformer.java (original)
+++ commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/changes/ChangeSetPerformer.java Wed Apr 15 12:49:09 2009
@@ -39,7 +39,7 @@
  * @Immutable
  */
 public class ChangeSetPerformer {
-    private Set changes = null;
+    private final Set changes;
     
     /**
      * Constructs a ChangeSetPerformer with the changes from this ChangeSet
@@ -80,16 +80,16 @@
             for (Iterator it = workingSet.iterator(); it.hasNext();) {
                 Change change = (Change) it.next();
 
-                if (change.type() == Change.TYPE_DELETE && 
-                    entry.getName() != null) {
-                    if (entry.getName().equals(change.targetFile())) {
+                final int type = change.type();
+                final String name = entry.getName();
+                if (type == Change.TYPE_DELETE && name != null) {
+                    if (name.equals(change.targetFile())) {
                         copy = false;
                         it.remove();
                         break;
                     }
-                } else if(change.type() == Change.TYPE_DELETE_DIR && 
-                          entry.getName() != null) {
-                    if (entry.getName().matches(
+                } else if(type == Change.TYPE_DELETE_DIR && name != null) {
+                    if (name.matches(
                             change.targetFile() + "/.*")) {
                         copy = false;
                         break;
@@ -120,14 +120,15 @@
         if (!workingSet.isEmpty()) {
             for (Iterator it = workingSet.iterator(); it.hasNext();) {
                 Change change = (Change) it.next();
-                if (change.type() == Change.TYPE_DELETE || change.type() == Change.TYPE_DELETE_DIR) {
+                final int type = change.type();
+                if (type == Change.TYPE_DELETE || type == Change.TYPE_DELETE_DIR) {
                     String target = change.targetFile();
 
                     if (source.equals(target)) {
                         return true;
                     }
 
-                    return source.matches(target + "/.*");
+                    return (type == Change.TYPE_DELETE_DIR) && source.matches(target + "/.*");
                 }
             }
         }

Modified: commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/changes/ChangeSetTestCase.java
URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/changes/ChangeSetTestCase.java?rev=765168&r1=765167&r2=765168&view=diff
==============================================================================
--- commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/changes/ChangeSetTestCase.java (original)
+++ commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/changes/ChangeSetTestCase.java Wed Apr 15 12:49:09 2009
@@ -41,7 +41,8 @@
  */
 public final class ChangeSetTestCase extends AbstractTestCase {
     
-    private void archiveListDelete(String prefix){
+    // Delete a directory tree
+    private void archiveListDeleteDir(String prefix){
         Iterator it = archiveList.iterator();
         while(it.hasNext()){
             String entry = (String) it.next();
@@ -51,6 +52,17 @@
         }
     }
 
+    // Delete a single file
+    private void archiveListDelete(String prefix){
+        Iterator it = archiveList.iterator();
+        while(it.hasNext()){
+            String entry = (String) it.next();
+            if (entry.equals(prefix)){
+                it.remove();
+            }
+        }
+    }
+
     /**
      * Tries to delete the folder "bla" from an archive file. This should result in
      * the deletion of bla/*, which actually means bla/test4.xml should be
@@ -76,8 +88,8 @@
                     new FileOutputStream(result));
 
             ChangeSet changes = new ChangeSet();
-            changes.delete("bla");
-            archiveListDelete("bla");
+            changes.deleteDir("bla");
+            archiveListDeleteDir("bla");
             ChangeSetPerformer performer = new ChangeSetPerformer(changes);
             performer.perform(ais, out);
             is.close();
@@ -155,8 +167,8 @@
                     new FileOutputStream(result));
 
             ChangeSet changes = new ChangeSet();
-            changes.delete("bla");
-            archiveListDelete("bla");
+            changes.deleteDir("bla");
+            archiveListDeleteDir("bla");
 
             // Add a file
             final File file1 = getFile("test.txt");
@@ -251,7 +263,7 @@
             archiveList.add("blub/test.txt");
 
             changes.deleteDir("blub");
-            archiveListDelete("blub");
+            archiveListDeleteDir("blub");
 
             ChangeSetPerformer performer = new ChangeSetPerformer(changes);
             performer.perform(ais, out);
@@ -299,7 +311,7 @@
             archiveList.add("bla/test.txt");
 
             changes.deleteDir("bla");
-            archiveListDelete("bla");
+            archiveListDeleteDir("bla");
 
             ChangeSetPerformer performer = new ChangeSetPerformer(changes);
             performer.perform(ais, out);