Return-Path: Delivered-To: apmail-harmony-commits-archive@www.apache.org Received: (qmail 3663 invoked from network); 28 Mar 2007 08:56:08 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 28 Mar 2007 08:56:08 -0000 Received: (qmail 36410 invoked by uid 500); 28 Mar 2007 08:56:04 -0000 Delivered-To: apmail-harmony-commits-archive@harmony.apache.org Received: (qmail 36388 invoked by uid 500); 28 Mar 2007 08:56:04 -0000 Mailing-List: contact commits-help@harmony.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@harmony.apache.org Delivered-To: mailing list commits@harmony.apache.org Received: (qmail 36368 invoked by uid 99); 28 Mar 2007 08:56:04 -0000 X-ASF-Spam-Status: No, hits=-99.5 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 28 Mar 2007 01:56:04 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id 54EFC1A9850; Wed, 28 Mar 2007 01:55:06 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r523235 - in /harmony/enhanced/classlib/trunk/modules/nio/src: main/java/org/apache/harmony/nio/internal/SocketChannelImpl.java test/java/common/org/apache/harmony/nio/tests/java/nio/channels/SocketChannelTest.java Date: Wed, 28 Mar 2007 08:55:06 -0000 To: commits@harmony.apache.org From: pyang@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20070328085506.54EFC1A9850@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: pyang Date: Wed Mar 28 01:55:05 2007 New Revision: 523235 URL: http://svn.apache.org/viewvc?view=rev&rev=523235 Log: Apply patch for HARMONY-3475( java.nio.SocketChannel's OutputStream cannot write a single byte) Modified: harmony/enhanced/classlib/trunk/modules/nio/src/main/java/org/apache/harmony/nio/internal/SocketChannelImpl.java harmony/enhanced/classlib/trunk/modules/nio/src/test/java/common/org/apache/harmony/nio/tests/java/nio/channels/SocketChannelTest.java Modified: harmony/enhanced/classlib/trunk/modules/nio/src/main/java/org/apache/harmony/nio/internal/SocketChannelImpl.java URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/org/apache/harmony/nio/internal/SocketChannelImpl.java?view=diff&rev=523235&r1=523234&r2=523235 ============================================================================== --- harmony/enhanced/classlib/trunk/modules/nio/src/main/java/org/apache/harmony/nio/internal/SocketChannelImpl.java (original) +++ harmony/enhanced/classlib/trunk/modules/nio/src/main/java/org/apache/harmony/nio/internal/SocketChannelImpl.java Wed Mar 28 01:55:05 2007 @@ -986,7 +986,7 @@ throw new IllegalBlockingModeException(); } ByteBuffer buffer = ByteBuffer.allocate(1); - buffer.put((byte) (oneByte & 0xFF)); + buffer.put(0, (byte) (oneByte & 0xFF)); channel.write(buffer); } } Modified: harmony/enhanced/classlib/trunk/modules/nio/src/test/java/common/org/apache/harmony/nio/tests/java/nio/channels/SocketChannelTest.java URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/common/org/apache/harmony/nio/tests/java/nio/channels/SocketChannelTest.java?view=diff&rev=523235&r1=523234&r2=523235 ============================================================================== --- harmony/enhanced/classlib/trunk/modules/nio/src/test/java/common/org/apache/harmony/nio/tests/java/nio/channels/SocketChannelTest.java (original) +++ harmony/enhanced/classlib/trunk/modules/nio/src/test/java/common/org/apache/harmony/nio/tests/java/nio/channels/SocketChannelTest.java Wed Mar 28 01:55:05 2007 @@ -3013,6 +3013,41 @@ } } + /** + * @tests SocketChannelImpl#socket().getOutputStream().write(int) + */ + public void test_socket_getOutputStream_write_oneByte() + throws IOException { + + // Regression test for Harmony-3475 + + int MAGIC = 123; + + channel1.connect(this.localAddr1); + + OutputStream os = channel1.socket().getOutputStream(); + + Socket acceptedSocket = server1.accept(); + + InputStream in = acceptedSocket.getInputStream(); + + os.write(MAGIC); + channel1.close(); + + int lastByte = in.read(); + if (lastByte == -1) { + fail("Server received nothing. Expected 1 byte."); + } else if (lastByte != MAGIC) { + fail("Server received wrong single byte: " + lastByte + + ", expected: " + MAGIC); + } + + lastByte = in.read(); + if (lastByte != -1) { + fail("Server received too long sequence. Expected 1 byte."); + } + } + class MockSocketChannel extends SocketChannel{ private boolean isWriteCalled = false;