Author: sebb
Date: Sun May  9 18:47:16 2010
New Revision: 942577

URL: http://svn.apache.org/viewvc?rev=942577&view=rev
Log:
Handle archives containing directories
Report actual missing entry

Modified:
    
commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/AbstractTestCase.java

Modified: 
commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/AbstractTestCase.java
URL: 
http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/AbstractTestCase.java?rev=942577&r1=942576&r2=942577&view=diff
==============================================================================
--- 
commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/AbstractTestCase.java
 (original)
+++ 
commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/AbstractTestCase.java
 Sun May  9 18:47:16 2010
@@ -289,15 +289,18 @@ public abstract class AbstractTestCase e
             while ((entry = in.getNextEntry()) != null) {
                 File outfile = new File(result.getCanonicalPath() + "/result/"
                         + entry.getName());
-                outfile.getParentFile().mkdirs();
-                OutputStream out = new FileOutputStream(outfile);
                 long copied=0;
-                try {
-                    copied=IOUtils.copy(in, out);
-                } finally {
-                    out.close();
+                if (entry.isDirectory()){
+                    outfile.mkdirs();
+                } else {
+                    outfile.getParentFile().mkdirs();
+                    OutputStream out = new FileOutputStream(outfile);
+                    try {
+                        copied=IOUtils.copy(in, out);
+                    } finally {
+                        out.close();
+                    }                    
                 }
-
                 final long size = entry.getSize();
                 if (size != ArchiveEntry.SIZE_UNKNOWN) {
                     assertEquals("Entry.size should equal bytes read.",size, 
copied);
@@ -307,7 +310,7 @@ public abstract class AbstractTestCase e
                     fail("extraction failed: " + entry.getName());
                 }
                 if (expected != null && 
!expected.remove(getExpectedString(entry))) {
-                    fail("unexpected entry: " + entry.getName());
+                    fail("unexpected entry: " + getExpectedString(entry));
                 }
             }
             in.close();


Reply via email to