Author: krosenvold Date: Fri Jun 19 17:03:34 2015 New Revision: 1686456 URL: http://svn.apache.org/r1686456 Log: IO-469 Self-supression with try-with-resources
Solution proposed by Grigory Fadeev Modified: commons/proper/io/trunk/src/main/java/org/apache/commons/io/input/BrokenInputStream.java commons/proper/io/trunk/src/main/java/org/apache/commons/io/output/BrokenOutputStream.java commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/BrokenInputStreamTest.java commons/proper/io/trunk/src/test/java/org/apache/commons/io/output/BrokenOutputStreamTest.java Modified: commons/proper/io/trunk/src/main/java/org/apache/commons/io/input/BrokenInputStream.java URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/src/main/java/org/apache/commons/io/input/BrokenInputStream.java?rev=1686456&r1=1686455&r2=1686456&view=diff ============================================================================== --- commons/proper/io/trunk/src/main/java/org/apache/commons/io/input/BrokenInputStream.java (original) +++ commons/proper/io/trunk/src/main/java/org/apache/commons/io/input/BrokenInputStream.java Fri Jun 19 17:03:34 2015 @@ -102,7 +102,7 @@ public class BrokenInputStream extends I */ @Override public void close() throws IOException { - throw exception; + throw new IOException(exception.getMessage()); } } Modified: commons/proper/io/trunk/src/main/java/org/apache/commons/io/output/BrokenOutputStream.java URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/src/main/java/org/apache/commons/io/output/BrokenOutputStream.java?rev=1686456&r1=1686455&r2=1686456&view=diff ============================================================================== --- commons/proper/io/trunk/src/main/java/org/apache/commons/io/output/BrokenOutputStream.java (original) +++ commons/proper/io/trunk/src/main/java/org/apache/commons/io/output/BrokenOutputStream.java Fri Jun 19 17:03:34 2015 @@ -79,7 +79,7 @@ public class BrokenOutputStream extends */ @Override public void close() throws IOException { - throw exception; + throw new IOException(exception.getMessage()); } } Modified: commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/BrokenInputStreamTest.java URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/BrokenInputStreamTest.java?rev=1686456&r1=1686455&r2=1686456&view=diff ============================================================================== --- commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/BrokenInputStreamTest.java (original) +++ commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/BrokenInputStreamTest.java Fri Jun 19 17:03:34 2015 @@ -95,4 +95,18 @@ public class BrokenInputStreamTest exten } } + @SuppressWarnings("ResultOfMethodCallIgnored") + public void testSelfSupressed(){ + BrokenInputStream bis = new BrokenInputStream(); + try { + bis.read(); + } catch (IOException e) { + try { + bis.close(); + } catch (IOException e1) { + e1.addSuppressed( e); // Simulates try-with resources since we're not jdk7 yet + } + } + } + } Modified: commons/proper/io/trunk/src/test/java/org/apache/commons/io/output/BrokenOutputStreamTest.java URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/src/test/java/org/apache/commons/io/output/BrokenOutputStreamTest.java?rev=1686456&r1=1686455&r2=1686456&view=diff ============================================================================== --- commons/proper/io/trunk/src/test/java/org/apache/commons/io/output/BrokenOutputStreamTest.java (original) +++ commons/proper/io/trunk/src/test/java/org/apache/commons/io/output/BrokenOutputStreamTest.java Fri Jun 19 17:03:34 2015 @@ -20,6 +20,7 @@ import java.io.IOException; import java.io.OutputStream; import junit.framework.TestCase; +import org.apache.commons.io.input.BrokenInputStream; /** * JUnit Test Case for {@link BrokenOutputStream}. @@ -77,4 +78,18 @@ public class BrokenOutputStreamTest exte } } + @SuppressWarnings("ResultOfMethodCallIgnored") + public void testSelfSupressed(){ + BrokenOutputStream bos = new BrokenOutputStream(); + try { + bos.write(123); + } catch (IOException e) { + try { + bos.close(); + } catch (IOException e1) { + e1.addSuppressed( e); // Simulates try-with resources since we're not jdk7 yet + } + } + } + }