Return-Path: Delivered-To: apmail-incubator-harmony-commits-archive@www.apache.org Received: (qmail 5979 invoked from network); 2 Aug 2006 04:55:28 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 2 Aug 2006 04:55:28 -0000 Received: (qmail 34966 invoked by uid 500); 2 Aug 2006 04:55:28 -0000 Delivered-To: apmail-incubator-harmony-commits-archive@incubator.apache.org Received: (qmail 34874 invoked by uid 500); 2 Aug 2006 04:55:28 -0000 Mailing-List: contact harmony-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: harmony-dev@incubator.apache.org Delivered-To: mailing list harmony-commits@incubator.apache.org Received: (qmail 34863 invoked by uid 99); 2 Aug 2006 04:55:28 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 01 Aug 2006 21:55:28 -0700 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [140.211.166.113] (HELO eris.apache.org) (140.211.166.113) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 01 Aug 2006 21:55:27 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id 670B71A981A; Tue, 1 Aug 2006 21:55:07 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r427892 - in /incubator/harmony/enhanced/classlib/trunk/modules/nio/src: main/java/org/apache/harmony/nio/internal/DatagramChannelImpl.java test/java/common/org/apache/harmony/tests/java/nio/channels/DatagramChannelTest.java Date: Wed, 02 Aug 2006 04:55:06 -0000 To: harmony-commits@incubator.apache.org From: pyang@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20060802045507.670B71A981A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: pyang Date: Tue Aug 1 21:55:06 2006 New Revision: 427892 URL: http://svn.apache.org/viewvc?rev=427892&view=rev Log: Fix for HARMONY-1036 ([classlib][nio] DatagramChannel.socket().receive/send should throw IllegalBlockingModeException when it is in non-blocking mode) Modified: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/org/apache/harmony/nio/internal/DatagramChannelImpl.java incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/common/org/apache/harmony/tests/java/nio/channels/DatagramChannelTest.java Modified: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/org/apache/harmony/nio/internal/DatagramChannelImpl.java URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/org/apache/harmony/nio/internal/DatagramChannelImpl.java?rev=427892&r1=427891&r2=427892&view=diff ============================================================================== --- incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/org/apache/harmony/nio/internal/DatagramChannelImpl.java (original) +++ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/org/apache/harmony/nio/internal/DatagramChannelImpl.java Tue Aug 1 21:55:06 2006 @@ -29,6 +29,7 @@ import java.nio.channels.AlreadyConnectedException; import java.nio.channels.ClosedChannelException; import java.nio.channels.DatagramChannel; +import java.nio.channels.IllegalBlockingModeException; import java.nio.channels.NotYetConnectedException; import java.nio.channels.spi.SelectorProvider; @@ -690,6 +691,26 @@ channelImpl.isBound = true; } + /* + * @see java.net.DatagramSocket#receive(java.net.DatagramPacket) + */ + public void receive(DatagramPacket packet) throws IOException { + if (!channelImpl.isBlocking()) { + throw new IllegalBlockingModeException(); + } + super.receive(packet); + } + + /* + * @see java.net.DatagramSocket#send(java.net.DatagramPacket) + */ + public void send(DatagramPacket packet) throws IOException { + if (!channelImpl.isBlocking()) { + throw new IllegalBlockingModeException(); + } + super.send(packet); + } + /* * @see java.net.DatagramSocket#close() */ Modified: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/common/org/apache/harmony/tests/java/nio/channels/DatagramChannelTest.java URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/common/org/apache/harmony/tests/java/nio/channels/DatagramChannelTest.java?rev=427892&r1=427891&r2=427892&view=diff ============================================================================== --- incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/common/org/apache/harmony/tests/java/nio/channels/DatagramChannelTest.java (original) +++ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/common/org/apache/harmony/tests/java/nio/channels/DatagramChannelTest.java Tue Aug 1 21:55:06 2006 @@ -25,6 +25,7 @@ import java.nio.channels.AsynchronousCloseException; import java.nio.channels.ClosedChannelException; import java.nio.channels.DatagramChannel; +import java.nio.channels.IllegalBlockingModeException; import java.nio.channels.NotYetConnectedException; import java.nio.channels.UnresolvedAddressException; import java.nio.channels.UnsupportedAddressTypeException; @@ -2551,6 +2552,28 @@ fail("Should throw NullPointerException"); } catch (NullPointerException e) { //pass + } + } + + /** + * @tests DatagramChannel#socket() + */ + public void test_socket_IllegalBlockingModeException() throws Exception { + // regression test for Harmony-1036 + DatagramChannel channel = DatagramChannel.open(); + channel.configureBlocking(false); + DatagramSocket socket = channel.socket(); + try { + socket.send(null); + fail("should throw IllegalBlockingModeException"); + } catch (IllegalBlockingModeException e) { + // expected + } + try { + socket.receive(null); + fail("should throw IllegalBlockingModeException"); + } catch (IllegalBlockingModeException e) { + // expected } }