Author: sebb
Date: Mon Apr 27 20:35:46 2009
New Revision: 769150

URL: http://svn.apache.org/viewvc?rev=769150&view=rev
Log:
Check for closing non-existent entry

Modified:
    
commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStream.java
    
commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveOutputStream.java

Modified: 
commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStream.java
URL: 
http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStream.java?rev=769150&r1=769149&r2=769150&view=diff
==============================================================================
--- 
commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStream.java
 (original)
+++ 
commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStream.java
 Mon Apr 27 20:35:46 2009
@@ -218,6 +218,9 @@
         if(finished) {
             throw new IOException("Stream has already been finished");
         }
+        if (!haveUnclosedEntry){
+            throw new IOException("No current entry to close");
+        }
         if (assemLen > 0) {
             for (int i = assemLen; i < assemBuf.length; ++i) {
                 assemBuf[i] = 0;

Modified: 
commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveOutputStream.java
URL: 
http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveOutputStream.java?rev=769150&r1=769149&r2=769150&view=diff
==============================================================================
--- 
commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveOutputStream.java
 (original)
+++ 
commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveOutputStream.java
 Mon Apr 27 20:35:46 2009
@@ -364,7 +364,7 @@
         }
         
         if (entry == null) {
-            return;
+            throw new IOException("No current entry to close");
         }
 
         long realCrc = crc.getValue();
@@ -430,7 +430,9 @@
             throw new IOException("Stream has already been finished");
         }
         
-        closeArchiveEntry();
+        if (entry != null) {
+            closeArchiveEntry();
+        }
 
         entry = ((ZipArchiveEntry) archiveEntry);
         entries.add(entry);


Reply via email to