Return-Path: Delivered-To: apmail-incubator-harmony-commits-archive@www.apache.org Received: (qmail 40480 invoked from network); 29 Jun 2006 09:23:08 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 29 Jun 2006 09:23:08 -0000 Received: (qmail 75336 invoked by uid 500); 29 Jun 2006 09:23:08 -0000 Delivered-To: apmail-incubator-harmony-commits-archive@incubator.apache.org Received: (qmail 75303 invoked by uid 500); 29 Jun 2006 09:23:08 -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 75292 invoked by uid 99); 29 Jun 2006 09:23:07 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 29 Jun 2006 02:23:07 -0700 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received: from [209.237.227.198] (HELO brutus.apache.org) (209.237.227.198) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 29 Jun 2006 02:23:07 -0700 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 2C5E9410005 for ; Thu, 29 Jun 2006 09:21:30 +0000 (GMT) Message-ID: <450418.1151572890163.JavaMail.jira@brutus> Date: Thu, 29 Jun 2006 09:21:30 +0000 (GMT+00:00) From: "Andrew Zhang (JIRA)" To: harmony-commits@incubator.apache.org Subject: [jira] Updated: (HARMONY-707) [classlib][nio] java.nio.channels.ServerSocketChannel.accept() method changes the value of SO_TIMEOUT if there are no pending connections in nonblocking mode. In-Reply-To: <863552.1151564009783.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N [ http://issues.apache.org/jira/browse/HARMONY-707?page=all ] Andrew Zhang updated HARMONY-707: --------------------------------- Attachment: nio.diff Hello, Would you please try my patch? This patch fixes following problems: 1. Current ly, Harmony takes "block accpet + timeout" to simulate non blocking accept. So the SO_TIMEOUT value is changed during accept operation. The patch fixes the problem, and use select to implement non blocking operation. 2. Remove duplicated security check. Thanks! Best regards, Andrew > [classlib][nio] java.nio.channels.ServerSocketChannel.accept() method changes the value of SO_TIMEOUT if there are no pending connections in nonblocking mode. > -------------------------------------------------------------------------------------------------------------------------------------------------------------- > > Key: HARMONY-707 > URL: http://issues.apache.org/jira/browse/HARMONY-707 > Project: Harmony > Type: Bug > Components: Classlib > Reporter: Andrew Zhang > Priority: Minor > Attachments: nio.diff > > java.nio.channels.ServerSocketChannel.accept() method changes the value of SO_TIMEOUT if there are no pending connections in nonblocking mode. > I'll upload a patch soon. Thanks! > Test case: > public void test_accept() throws IOException { > final int SO_TIMEOUT = 800; > ServerSocketChannel sc = ServerSocketChannel.open(); > try { > ServerSocket ss = sc.socket(); > ss.bind(new InetSocketAddress("127.0.0.1", 0)); > sc.configureBlocking(false); > ss.setSoTimeout(SO_TIMEOUT); > SocketChannel client = sc.accept(); > // non blocking mode, returns null since there are no pending connections. > assertNull(client); > int soTimeout = ss.getSoTimeout(); > // Harmony fails here. > assertEquals(SO_TIMEOUT, soTimeout); > } finally { > sc.close(); > } > } > Test result: > RI 5.0 passes the test while Harmony fails. > Best regards, > Andrew -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira