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
+            }
+        }
+    }
+
 }


Reply via email to