[vassalengine-svn] SF.net SVN: vassalengine: [3490] VASSAL-src/branches/uckelman-working/src/ VASSA
Brought to you by:
rodneykinney,
uckelman
From: <uck...@us...> - 2008-04-28 23:04:45
|
Revision: 3490 http://vassalengine.svn.sourceforge.net/vassalengine/?rev=3490&view=rev Author: uckelman Date: 2008-04-28 16:02:44 -0700 (Mon, 28 Apr 2008) Log Message: ----------- Added closeQuiety() to eliminate boilerplate close blocks. Modified Paths: -------------- VASSAL-src/branches/uckelman-working/src/VASSAL/tools/IOUtils.java Modified: VASSAL-src/branches/uckelman-working/src/VASSAL/tools/IOUtils.java =================================================================== --- VASSAL-src/branches/uckelman-working/src/VASSAL/tools/IOUtils.java 2008-04-28 16:40:24 UTC (rev 3489) +++ VASSAL-src/branches/uckelman-working/src/VASSAL/tools/IOUtils.java 2008-04-28 23:02:44 UTC (rev 3490) @@ -1,6 +1,8 @@ /* - * Copyright (c) 2007 by Joel Uckelman + * $Id$ * + * Copyright (c) 2007-2008 by Joel Uckelman + * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License (LGPL) as published by the Free Software Foundation. @@ -21,6 +23,7 @@ import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.BufferedInputStream; +import java.io.Closeable; import java.io.InputStream; import java.io.InputStreamReader; import java.io.IOException; @@ -29,6 +32,8 @@ import java.io.Reader; import java.io.StringWriter; import java.io.Writer; +import java.net.ServerSocket; +import java.net.Socket; /** * General I/O stream manipulation utilities. This class provides static @@ -256,4 +261,44 @@ return buffer != null ? buffer : new byte[0]; } + + /** + * Close a {@link Closeable} unconditionally. Equivalent to + * calling <code>c.close()</code> when <code>c</code> is nonnull. + * {@link IOException}s are quietly ignored, as there is generally + * nothing that can be done about exceptions on closing. + * + * @param c a (possibly <code>null</code>) <code>Closeable</code> + */ + public static void closeQuietly(Closeable c) { + if (c == null) return; + + try { + c.close(); + } + catch (IOException e) { + } + } + + // FIXME: Remove in Java 1.6+, when ServerSocket implements Closeable + public static void closeQuietly(ServerSocket s) { + if (s == null) return; + + try { + s.close(); + } + catch (IOException e) { + } + } + + // FIXME: Remove in Java 1.6+, when Socket implements Closeable + public static void closeQuietly(Socket s) { + if (s == null) return; + + try { + s.close(); + } + catch (IOException e) { + } + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |