You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by im...@apache.org on 2005/09/11 16:01:31 UTC

svn commit: r280140 - in /jakarta/commons/sandbox/compress/trunk/src: java/org/apache/commons/compress/bzip2/CBZip2InputStream.java test/org/apache/commons/compress/bzip2/test/BzipTestCase.java

Author: imario
Date: Sun Sep 11 07:01:25 2005
New Revision: 280140

URL: http://svn.apache.org/viewcvs?rev=280140&view=rev
Log:
PR: 36597
Submitted by: Hiroki Ata <hiroki.ata -at- mail.com>

underlaying inputStream wasnt correctly closed.

Thanks for the patch!


Modified:
    jakarta/commons/sandbox/compress/trunk/src/java/org/apache/commons/compress/bzip2/CBZip2InputStream.java
    jakarta/commons/sandbox/compress/trunk/src/test/org/apache/commons/compress/bzip2/test/BzipTestCase.java

Modified: jakarta/commons/sandbox/compress/trunk/src/java/org/apache/commons/compress/bzip2/CBZip2InputStream.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/compress/trunk/src/java/org/apache/commons/compress/bzip2/CBZip2InputStream.java?rev=280140&r1=280139&r2=280140&view=diff
==============================================================================
--- jakarta/commons/sandbox/compress/trunk/src/java/org/apache/commons/compress/bzip2/CBZip2InputStream.java (original)
+++ jakarta/commons/sandbox/compress/trunk/src/java/org/apache/commons/compress/bzip2/CBZip2InputStream.java Sun Sep 11 07:01:25 2005
@@ -624,6 +624,16 @@
 
     private void bsFinishedWithStream()
     {
+        if (m_input != null)
+        {
+            try
+            {
+                m_input.close();
+            }
+            catch ( IOException e )
+            {
+            }
+        }
         m_input = null;
     }
 
@@ -967,6 +977,6 @@
     
     public void close() throws IOException 
     {
-        m_input.close();
+	bsFinishedWithStream();
     }
 }

Modified: jakarta/commons/sandbox/compress/trunk/src/test/org/apache/commons/compress/bzip2/test/BzipTestCase.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/compress/trunk/src/test/org/apache/commons/compress/bzip2/test/BzipTestCase.java?rev=280140&r1=280139&r2=280140&view=diff
==============================================================================
--- jakarta/commons/sandbox/compress/trunk/src/test/org/apache/commons/compress/bzip2/test/BzipTestCase.java (original)
+++ jakarta/commons/sandbox/compress/trunk/src/test/org/apache/commons/compress/bzip2/test/BzipTestCase.java Sun Sep 11 07:01:25 2005
@@ -83,6 +83,30 @@
         forceDelete( outputFile );
     }
 
+    public void testCBZip2InputStreamClose()
+        throws Exception
+    {
+        final InputStream input = getInputStream( "asf-logo-huge.tar.bz2" );
+        final File outputFile = getOutputFile( ".tar.bz2" );
+        final OutputStream output = new FileOutputStream( outputFile );
+        copy( input, output );
+        shutdownStream( input );
+        shutdownStream( output );
+        assertTrue( "Check output file exists." , outputFile.exists() );
+        final InputStream input2 = new FileInputStream( outputFile );
+        final InputStream packedInput = getPackedInput( input2 );
+        shutdownStream( packedInput );
+        try
+        {
+            input2.read();
+            assertTrue("Source input stream is still opened.", false);
+        } catch ( Exception e )
+        {
+            // Read closed stream.
+        }
+        forceDelete( outputFile );
+    }
+
     /**
      * Copy bytes from an <code>InputStream</code> to an <code>OutputStream</code>.
      */



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org