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);