You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by gh...@apache.org on 2006/07/14 13:23:48 UTC

svn commit: r421870 - in /incubator/harmony/enhanced/classlib/trunk/modules/luni/src: main/java/java/net/Socket.java main/java/org/apache/harmony/luni/util/ExternalMessages.properties test/java/tests/api/java/net/SocketTest.java

Author: gharley
Date: Fri Jul 14 04:23:47 2006
New Revision: 421870

URL: http://svn.apache.org/viewvc?rev=421870&view=rev
Log:
HARMONY 873 : [luni] java.net.Socket.getOutputStream should throw SocketException if output has been shutdown

Modified:
    incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/Socket.java
    incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/util/ExternalMessages.properties
    incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/net/SocketTest.java

Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/Socket.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/Socket.java?rev=421870&r1=421869&r2=421870&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/Socket.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/Socket.java Fri Jul 14 04:23:47 2006
@@ -402,6 +402,9 @@
 	 */
 	public OutputStream getOutputStream() throws IOException {
 		checkClosedAndCreate(false);
+        if (isOutputShutdown()) {
+            throw new SocketException(Msg.getString("KA00f"));
+        }
 		return impl.getOutputStream();
 	}
 

Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/util/ExternalMessages.properties
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/util/ExternalMessages.properties?rev=421870&r1=421869&r2=421870&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/util/ExternalMessages.properties (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/util/ExternalMessages.properties Fri Jul 14 04:23:47 2006
@@ -300,4 +300,4 @@
 KA00c=Readable is null
 KA00d=ReadableByteChannel is null
 KA00e=Radix {0} is less than Character.MIN_RADIX or greater than Character.MAX_RADIX
-
+KA00f=Socket output is shutdown

Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/net/SocketTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/net/SocketTest.java?rev=421870&r1=421869&r2=421870&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/net/SocketTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/net/SocketTest.java Fri Jul 14 04:23:47 2006
@@ -2397,6 +2397,23 @@
             // expected
         }
     }
+    
+    /**
+     * @tests Socket#getOutputStream()
+     */
+    public void test_getOutputStream_shutdownOutput() throws Exception {
+        // regression test for Harmony-873
+        ServerSocket ss = new ServerSocket(0);
+        Socket s = new Socket("127.0.0.1", ss.getLocalPort());
+        ss.accept();
+        s.shutdownOutput();
+        try {
+            s.getOutputStream();
+            fail("should throw SocketException");
+        } catch (SocketException e) {
+            // expected
+        }
+    }
 
 	/**
 	 * Sets up the fixture, for example, open a network connection. This method