[jboss-cvs] JBossAS SVN: r90261 - in projects/vfs/trunk/src/main/java/org/jboss/virtual: plugins/context and 5 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Jun 16 12:32:38 EDT 2009
Author: david.lloyd at jboss.com
Date: 2009-06-16 12:32:38 -0400 (Tue, 16 Jun 2009)
New Revision: 90261
Modified:
projects/vfs/trunk/src/main/java/org/jboss/virtual/VFSUtils.java
projects/vfs/trunk/src/main/java/org/jboss/virtual/VirtualFile.java
projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/AbstractURLHandler.java
projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/file/FileSystemContext.java
projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/jar/NestedJarHandler.java
projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryContext.java
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/ZipFileWrapper.java
projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipStreamWrapper.java
projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/copy/AbstractCopyMechanism.java
projects/vfs/trunk/src/main/java/org/jboss/virtual/spi/VFSContextFactoryLocator.java
Log:
Clean up lots of resource management, add safeClose() convenience method
Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/VFSUtils.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/VFSUtils.java 2009-06-16 16:10:32 UTC (rev 90260)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/VFSUtils.java 2009-06-16 16:32:38 UTC (rev 90261)
@@ -25,6 +25,7 @@
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
+import java.io.Closeable;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
@@ -278,13 +279,7 @@
}
finally
{
- try
- {
- stream.close();
- }
- catch (IOException ignored)
- {
- }
+ safeClose(stream);
}
}
@@ -902,18 +897,8 @@
}
finally
{
- if (is != null)
- {
- try
- {
- is.close();
- }
- catch(IOException ignored)
- {
- }
- }
- if (os != null)
- os.close();
+ safeClose(is);
+ safeClose(os);
}
}
@@ -1117,4 +1102,33 @@
URI uri = context.getRootURI();
return stripProtocol(uri);
}
+
+ /**
+ * Safely close some resource without throwing an exception. Any exception will be logged at TRACE level.
+ *
+ * @param c the resource
+ */
+ public static void safeClose(final Closeable c)
+ {
+ if (c != null) try {
+ c.close();
+ }
+ catch (Exception e)
+ {
+ log.trace("Failed to close resource", e);
+ }
+ }
+
+ /**
+ * Safely close some resources without throwing an exception. Any exception will be logged at TRACE level.
+ *
+ * @param ci the resources
+ */
+ public static void safeClose(final Iterable<? extends Closeable> ci)
+ {
+ if (ci != null) for (Closeable closeable : ci)
+ {
+ safeClose(closeable);
+ }
+ }
}
Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/VirtualFile.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/VirtualFile.java 2009-06-16 16:10:32 UTC (rev 90260)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/VirtualFile.java 2009-06-16 16:32:38 UTC (rev 90261)
@@ -260,19 +260,7 @@
return;
// Close the streams
- for (InputStream stream : streams)
- {
- if (stream != null)
- {
- try
- {
- stream.close();
- }
- catch (IOException ignored)
- {
- }
- }
- }
+ VFSUtils.safeClose(streams);
streams.clear();
}
Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/AbstractURLHandler.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/AbstractURLHandler.java 2009-06-16 16:10:32 UTC (rev 90260)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/AbstractURLHandler.java 2009-06-16 16:32:38 UTC (rev 90261)
@@ -118,7 +118,7 @@
try
{
if (c instanceof JarURLConnection == false)
- c.getInputStream().close();
+ VFSUtils.safeClose(c.getInputStream());
}
catch (Exception ex)
{
Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/file/FileSystemContext.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/file/FileSystemContext.java 2009-06-16 16:10:32 UTC (rev 90260)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/file/FileSystemContext.java 2009-06-16 16:32:38 UTC (rev 90261)
@@ -372,14 +372,7 @@
}
finally
{
- try
- {
- fis.close();
- }
- catch(IOException e)
- {
- log.debug("Exception closing file input stream: " + fis, e);
- }
+ VFSUtils.safeClose(fis);
}
return handler;
}
Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/jar/NestedJarHandler.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/jar/NestedJarHandler.java 2009-06-16 16:10:32 UTC (rev 90260)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/jar/NestedJarHandler.java 2009-06-16 16:32:38 UTC (rev 90261)
@@ -34,6 +34,7 @@
import org.jboss.virtual.spi.VFSContext;
import org.jboss.virtual.spi.VirtualFileHandler;
+import org.jboss.virtual.VFSUtils;
/**
* Nested Jar Handler.
@@ -78,18 +79,12 @@
}
finally
{
- outputStream.close();
+ VFSUtils.safeClose(outputStream);
}
}
finally
{
- try
- {
- inputStream.close();
- }
- catch (IOException ignored)
- {
- }
+ VFSUtils.safeClose(inputStream);
}
return new JarFile(temp);
Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryContext.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryContext.java 2009-06-16 16:10:32 UTC (rev 90260)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryContext.java 2009-06-16 16:32:38 UTC (rev 90261)
@@ -432,10 +432,11 @@
}
if (longestNameMatch == null)
throw new IllegalArgumentException("Cannot find entry: " + is + ", " + relative);
+ zis.close();
}
finally
{
- zis.close();
+ VFSUtils.safeClose(zis);
}
// do recursion on relative
@@ -455,10 +456,11 @@
return findEntry(zis.currentStream(), relative, null);
}
}
+ zis.close();
}
finally
{
- zis.close();
+ VFSUtils.safeClose(zis);
}
throw new IllegalArgumentException("No such entry: " + is + ", " + relative);
}
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 16:10:32 UTC (rev 90260)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryInputStream.java 2009-06-16 16:32:38 UTC (rev 90261)
@@ -21,6 +21,8 @@
*/
package org.jboss.virtual.plugins.context.zip;
+import org.jboss.virtual.VFSUtils;
+
import java.io.IOException;
import java.io.InputStream;
@@ -228,13 +230,7 @@
*/
protected void finalize() throws Throwable
{
- try
- {
- close();
- }
- catch(IOException ignored)
- {
- }
+ VFSUtils.safeClose(this);
super.finalize();
}
Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipFileWrapper.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipFileWrapper.java 2009-06-16 16:10:32 UTC (rev 90260)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipFileWrapper.java 2009-06-16 16:32:38 UTC (rev 90261)
@@ -373,10 +373,11 @@
try
{
VFSUtils.copyStream(is, zout);
+ is.close();
}
finally
{
- is.close();
+ VFSUtils.safeClose(is);
}
}
}
Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipStreamWrapper.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipStreamWrapper.java 2009-06-16 16:10:32 UTC (rev 90260)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipStreamWrapper.java 2009-06-16 16:32:38 UTC (rev 90261)
@@ -106,10 +106,11 @@
inMemoryFiles.put(ent.getName(), new InMemoryFile(ent, fileBytes));
ent = zis.getNextEntry();
}
+ zis.close();
}
finally
{
- zis.close();
+ VFSUtils.safeClose(zis);
}
if (optimizeForMemory) {
Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/copy/AbstractCopyMechanism.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/copy/AbstractCopyMechanism.java 2009-06-16 16:10:32 UTC (rev 90260)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/copy/AbstractCopyMechanism.java 2009-06-16 16:32:38 UTC (rev 90261)
@@ -318,10 +318,11 @@
try
{
JarUtils.unjar(in, copy);
+ in.close();
}
finally
{
- in.close();
+ VFSUtils.safeClose(in);
}
}
@@ -335,33 +336,29 @@
protected static void rewrite(VirtualFileHandler handler, File file) throws IOException
{
OutputStream out = new FileOutputStream(file);
- InputStream in = handler.openStream();
try
{
- byte[] bytes = new byte[1024];
- while (in.available() > 0)
- {
- int length = in.read(bytes);
- if (length > 0)
- out.write(bytes, 0, length);
- }
- }
- finally
- {
+ InputStream in = handler.openStream();
try
{
+ byte[] bytes = new byte[1024];
+ while (in.available() > 0)
+ {
+ int length = in.read(bytes);
+ if (length > 0)
+ out.write(bytes, 0, length);
+ }
in.close();
- }
- catch (IOException ignored)
- {
- }
- try
- {
out.close();
}
- catch (IOException ignored)
+ finally
{
+ VFSUtils.safeClose(in);
}
}
+ finally
+ {
+ VFSUtils.safeClose(out);
+ }
}
}
\ No newline at end of file
Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/spi/VFSContextFactoryLocator.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/spi/VFSContextFactoryLocator.java 2009-06-16 16:10:32 UTC (rev 90260)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/spi/VFSContextFactoryLocator.java 2009-06-16 16:32:38 UTC (rev 90261)
@@ -43,6 +43,7 @@
import org.jboss.virtual.plugins.context.memory.MemoryContextFactory;
import org.jboss.virtual.plugins.context.zip.ZipEntryContextFactory;
import org.jboss.virtual.plugins.context.VfsArchiveBrowserFactory;
+import org.jboss.virtual.VFSUtils;
import org.jboss.util.file.ArchiveBrowser;
/**
@@ -290,10 +291,11 @@
temp.add(factory);
}
}
+ is.close();
}
finally
{
- is.close();
+ VFSUtils.safeClose(is);
}
}
catch(Exception e)
More information about the jboss-cvs-commits
mailing list