[jboss-cvs] JBossAS SVN: r90269 - in projects/vfs/trunk/src: main/java/org/jboss/virtual/spi/zip and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Jun 16 16:02:08 EDT 2009
Author: alesj
Date: 2009-06-16 16:02:08 -0400 (Tue, 16 Jun 2009)
New Revision: 90269
Modified:
projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryInputStream.java
projects/vfs/trunk/src/main/java/org/jboss/virtual/spi/zip/ZipEntry.java
projects/vfs/trunk/src/main/java/org/jboss/virtual/spi/zip/ZipEntryProvider.java
projects/vfs/trunk/src/main/java/org/jboss/virtual/spi/zip/ZipFactory.java
projects/vfs/trunk/src/main/java/org/jboss/virtual/spi/zip/ZipFile.java
projects/vfs/trunk/src/main/java/org/jboss/virtual/spi/zip/jzipfile/JZipFileZipEntryProvider.java
projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/JARCacheUnitTestCase.java
Log:
Fix IS::close.
Found the culprit who didn't close. :-)
Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryInputStream.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryInputStream.java 2009-06-16 19:58:48 UTC (rev 90268)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryInputStream.java 2009-06-16 20:02:08 UTC (rev 90269)
@@ -21,11 +21,11 @@
*/
package org.jboss.virtual.plugins.context.zip;
-import org.jboss.virtual.VFSUtils;
-
import java.io.IOException;
import java.io.InputStream;
+import org.jboss.virtual.VFSUtils;
+
/**
* ZipEntryInputStream is part of ZipFileWrapper implementation.
*
@@ -33,9 +33,9 @@
* and releases the underlying ZipFileWrapper when detecting end of use.
*
* @author <a href="strukelj at parsek.net">Marko Strukelj</a>
+ * @author <a href="ales.justin at jboss.org">Ales Justin</a>
* @version $Revision: 1.0 $
*/
-
public class ZipEntryInputStream extends InputStream
{
/** Underlying input stream */
@@ -44,9 +44,12 @@
/** Underlying zip source */
private ZipFileWrapper zipWrapper;
- /** Is stream closed */
- private boolean closed;
+ /** Is stream released */
+ private volatile boolean released;
+ /** Is stream delegate closed */
+ private volatile boolean closed;
+
/**
* ZipEntryInputStream constructor.
*
@@ -65,13 +68,15 @@
}
/**
- * Close this stream and release zipWrapper
+ * Release this stream and release zipWrapper
+ *
+ * @param doRelease should we release
*/
- private void streamClosed(boolean doClose)
+ private void streamReleased(boolean doRelease)
{
- if (closed == false && doClose)
+ if (released == false && doRelease)
{
- closed = true;
+ released = true;
zipWrapper.release();
}
}
@@ -93,7 +98,7 @@
}
finally
{
- streamClosed(rc < 0);
+ streamReleased(rc < 0);
}
}
@@ -116,7 +121,7 @@
}
finally
{
- streamClosed(rc < 0);
+ streamReleased(rc < 0);
}
}
@@ -140,7 +145,7 @@
}
finally
{
- streamClosed(rc < 0);
+ streamReleased(rc < 0);
}
}
@@ -157,7 +162,7 @@
}
finally
{
- streamClosed(ok == false);
+ streamReleased(ok == false);
}
}
@@ -174,7 +179,7 @@
}
finally
{
- streamClosed(ok == false);
+ streamReleased(ok == false);
}
}
@@ -192,7 +197,7 @@
}
finally
{
- streamClosed(ok == false);
+ streamReleased(ok == false);
}
}
@@ -210,7 +215,7 @@
}
finally
{
- streamClosed(ok == false);
+ streamReleased(ok == false);
}
}
@@ -221,8 +226,18 @@
*/
public void close() throws IOException
{
- streamClosed(true);
- super.close();
+ try
+ {
+ streamReleased(true);
+ }
+ finally
+ {
+ if (closed == false)
+ {
+ closed = true;
+ VFSUtils.safeClose(delegate);
+ }
+ }
}
/**
@@ -235,6 +250,16 @@
}
/**
+ * isReleased.
+ *
+ * @return returns true if released
+ */
+ boolean isReleased()
+ {
+ return released;
+ }
+
+ /**
* isClosed.
*
* @return returns true if closed
Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/spi/zip/ZipEntry.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/spi/zip/ZipEntry.java 2009-06-16 19:58:48 UTC (rev 90268)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/spi/zip/ZipEntry.java 2009-06-16 20:02:08 UTC (rev 90269)
@@ -28,7 +28,6 @@
*/
public interface ZipEntry
{
-
/**
* Get the full name of the entry.
*
Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/spi/zip/ZipEntryProvider.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/spi/zip/ZipEntryProvider.java 2009-06-16 19:58:48 UTC (rev 90268)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/spi/zip/ZipEntryProvider.java 2009-06-16 20:02:08 UTC (rev 90269)
@@ -32,7 +32,6 @@
*/
public interface ZipEntryProvider extends Closeable
{
-
/**
* Get the next entry in the stream. This method may render the results of {@link #currentStream()} useless;
* such streams should be closed before invoking this method.
Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/spi/zip/ZipFactory.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/spi/zip/ZipFactory.java 2009-06-16 19:58:48 UTC (rev 90268)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/spi/zip/ZipFactory.java 2009-06-16 20:02:08 UTC (rev 90269)
@@ -32,7 +32,6 @@
*/
public interface ZipFactory
{
-
/**
* Create a zip entry provider for an input stream. The provider will provide the means to iterate over a zip
* file one entry at a time. The returned provider <b>must</b> be closed or else file locking or cleanup issues
Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/spi/zip/ZipFile.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/spi/zip/ZipFile.java 2009-06-16 19:58:48 UTC (rev 90268)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/spi/zip/ZipFile.java 2009-06-16 20:02:08 UTC (rev 90269)
@@ -33,7 +33,6 @@
*/
public interface ZipFile extends Closeable
{
-
/**
* Get the input stream for a specific entry. The caller <b>must</b> close the input stream or
* file locking/cleanup issues may ensue.
Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/spi/zip/jzipfile/JZipFileZipEntryProvider.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/spi/zip/jzipfile/JZipFileZipEntryProvider.java 2009-06-16 19:58:48 UTC (rev 90268)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/spi/zip/jzipfile/JZipFileZipEntryProvider.java 2009-06-16 20:02:08 UTC (rev 90269)
@@ -21,18 +21,18 @@
*/
package org.jboss.virtual.spi.zip.jzipfile;
+import java.io.File;
+import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.io.File;
-import java.io.FileOutputStream;
import java.util.Iterator;
import org.jboss.jzipfile.Zip;
import org.jboss.jzipfile.ZipCatalog;
import org.jboss.jzipfile.ZipEntryType;
+import org.jboss.virtual.VFSUtils;
import org.jboss.virtual.spi.zip.ZipEntry;
import org.jboss.virtual.spi.zip.ZipEntryProvider;
-import org.jboss.virtual.VFSUtils;
/**
* @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
Modified: projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/JARCacheUnitTestCase.java
===================================================================
--- projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/JARCacheUnitTestCase.java 2009-06-16 19:58:48 UTC (rev 90268)
+++ projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/JARCacheUnitTestCase.java 2009-06-16 20:02:08 UTC (rev 90269)
@@ -31,8 +31,8 @@
import junit.framework.Test;
import org.jboss.virtual.VFS;
+import org.jboss.virtual.VFSUtils;
import org.jboss.virtual.VirtualFile;
-import org.jboss.virtual.VFSUtils;
/**
* Test the caching strategy of VFS with jar files.
More information about the jboss-cvs-commits
mailing list