Initial load
diff --git a/test/java/io/FileOutputStream/OpsAfterClose.java b/test/java/io/FileOutputStream/OpsAfterClose.java
new file mode 100644
index 0000000..8ea0866
--- /dev/null
+++ b/test/java/io/FileOutputStream/OpsAfterClose.java
@@ -0,0 +1,103 @@
+/**
+ *  @test
+ *  @bug 6359397
+ *  @summary Test if FileOutputStream methods will check if the stream
+ *          has been closed.
+ */
+
+import java.io.*;
+
+public enum OpsAfterClose {
+
+        WRITE { boolean check(FileOutputStream r) {
+                    try {
+                        r.write(1);
+                    } catch (IOException io) {
+                        System.out.print("Excep Msg: "+ io.getMessage() + ", ");
+                        return true;
+                    }
+                    return false;
+             } },
+
+        WRITE_BUF { boolean check(FileOutputStream r) {
+                    try {
+                        byte buf[] = new byte[2];
+                        r.write(buf);
+                    } catch (IOException io) {
+                        System.out.print("Excep Msg: "+ io.getMessage() + ", ");
+                        return true;
+                    }
+                    return false;
+            } },
+        WRITE_BUF_OFF { boolean check(FileOutputStream r) {
+                    try {
+                        byte buf[] = new byte[2];
+                        int len = 1;
+                        r.write(buf, 0, len);
+                    } catch (IOException io) {
+                        System.out.print("Excep Msg: "+ io.getMessage() + ", ");
+                        return true;
+                    }
+                    return false;
+             } },
+        GET_CHANNEL { boolean check(FileOutputStream r) {
+                    r.getChannel();
+                    return true;
+             } },
+        GET_FD { boolean check(FileOutputStream r) {
+                    try {
+                        r.getFD();
+                        return true;
+                    } catch (IOException io) {
+                        System.out.print("Excep Msg: "+ io.getMessage() + ", ");
+                        return false;
+                    }
+             } },
+        CLOSE { boolean check(FileOutputStream r) {
+                try {
+                    r.close();
+                    return true; // No Exceptin thrown on Windows
+                } catch (IOException io) {
+                    System.out.print("Excep Msg: "+ io.getMessage() + ", ");
+                    return true; // Exception thrown on solaris and linux
+                }
+             } };
+
+    abstract boolean check(FileOutputStream r);
+
+    public static void main(String args[]) throws Exception {
+
+        boolean failed = false;
+
+        File f = new File(System.getProperty("test.dir", "."),
+                          "f.txt");
+        f.createNewFile();
+        f.deleteOnExit();
+
+        FileOutputStream fis = new FileOutputStream(f);
+        if (testFileOutputStream(fis)) {
+            throw new Exception("Test failed for some of the operation{s}" +
+                " on FileOutputStream, check the messages");
+        }
+    }
+
+    private static boolean testFileOutputStream(FileOutputStream r)
+            throws Exception {
+        r.close();
+        boolean failed = false;
+        boolean result;
+        System.out.println("Testing File:" + r);
+        for (OpsAfterClose op : OpsAfterClose.values()) {
+            result = op.check(r);
+            if (!result) {
+                failed = true;
+            }
+           System.out.println(op + ":" + result);
+        }
+        if (failed) {
+            System.out.println("Test failed for the failed operation{s}" +
+                        " above for the FileOutputStream:" + r);
+        }
+        return failed;
+    }
+}