Too many balls in the air, looks like I created the change-set for 7020888 while have another patch in my working copy. This means the change included changes to several java.io classes that should have been there. Nothing wrong with the change, they fix long standing issues that were touched on here recently, but they involve behavior changes and are not reviewed. Chris - I need anti-delta 5 files, can you review?


diff --git a/src/share/classes/java/io/BufferedReader.java b/src/share/classes/java/io/BufferedReader.java
--- a/src/share/classes/java/io/BufferedReader.java
+++ b/src/share/classes/java/io/BufferedReader.java
@@ -512,14 +512,11 @@ public class BufferedReader extends Read

    public void close() throws IOException {
        synchronized (lock) {
-            if (in != null) {
-                try {
-                    in.close();
-                } finally {
-                    in = null;
-                    cb = null;
-                }
-            }
+            if (in == null)
+                return;
+            in.close();
+            in = null;
+            cb = null;
        }
    }
}
diff --git a/src/share/classes/java/io/BufferedWriter.java b/src/share/classes/java/io/BufferedWriter.java
--- a/src/share/classes/java/io/BufferedWriter.java
+++ b/src/share/classes/java/io/BufferedWriter.java
@@ -255,16 +255,17 @@ public class BufferedWriter extends Writ
        }
    }

-    @SuppressWarnings("try")
    public void close() throws IOException {
        synchronized (lock) {
-            if (out != null) {
-                try (Writer w = out) {
-                    flushBuffer();
-                } finally {
-                    out = null;
-                    cb = null;
-                }
+            if (out == null) {
+                return;
+            }
+            try {
+                flushBuffer();
+            } finally {
+                out.close();
+                out = null;
+                cb = null;
            }
        }
    }
diff --git a/src/share/classes/java/io/FilterOutputStream.java b/src/share/classes/java/io/FilterOutputStream.java
--- a/src/share/classes/java/io/FilterOutputStream.java
+++ b/src/share/classes/java/io/FilterOutputStream.java
@@ -152,10 +152,11 @@ class FilterOutputStream extends OutputS
     * @see        java.io.FilterOutputStream#flush()
     * @see        java.io.FilterOutputStream#out
     */
-    @SuppressWarnings("try")
    public void close() throws IOException {
-        try (OutputStream ostream = out) {
-            flush();
+        try {
+          flush();
+        } catch (IOException ignored) {
        }
+        out.close();
    }
}
diff --git a/src/share/classes/java/io/PushbackInputStream.java b/src/share/classes/java/io/PushbackInputStream.java
--- a/src/share/classes/java/io/PushbackInputStream.java
+++ b/src/share/classes/java/io/PushbackInputStream.java
@@ -374,13 +374,10 @@ class PushbackInputStream extends Filter
     * @exception  IOException  if an I/O error occurs.
     */
    public synchronized void close() throws IOException {
-        if (in != null) {
-            try {
-                in.close();
-            } finally {
-                in = null;
-                buf = null;
-            }
-        }
+        if (in == null)
+            return;
+        in.close();
+        in = null;
+        buf = null;
    }
}
diff --git a/src/share/classes/java/io/PushbackReader.java b/src/share/classes/java/io/PushbackReader.java
--- a/src/share/classes/java/io/PushbackReader.java
+++ b/src/share/classes/java/io/PushbackReader.java
@@ -245,11 +245,8 @@ public class PushbackReader extends Filt
     * @exception  IOException  If an I/O error occurs
     */
    public void close() throws IOException {
-        try {
-            super.close();
-        } finally {
-            buf = null;
-        }
+        super.close();
+        buf = null;
    }

    /**
diff --git a/test/java/lang/ProcessBuilder/Basic.java b/test/java/lang/ProcessBuilder/Basic.java
--- a/test/java/lang/ProcessBuilder/Basic.java
+++ b/test/java/lang/ProcessBuilder/Basic.java
@@ -1762,9 +1762,9 @@ public class Basic {

            equal(p.exitValue(), 5);

- try { p.getInputStream().close(); } catch (IOException ignore) { } - try {p.getErrorStream().close(); } catch (IOException ignore) { } - try { p.getOutputStream().close(); } catch (IOException ignore) { }
+            p.getInputStream().close();
+            p.getErrorStream().close();
+            p.getOutputStream().close();

InputStream[] streams = { p.getInputStream(), p.getErrorStream() };
            for (final InputStream in : streams) {

Reply via email to