Return-Path: X-Original-To: apmail-tomcat-dev-archive@www.apache.org Delivered-To: apmail-tomcat-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 479CA6503 for ; Wed, 6 Jul 2011 12:32:14 +0000 (UTC) Received: (qmail 30415 invoked by uid 500); 6 Jul 2011 12:32:13 -0000 Delivered-To: apmail-tomcat-dev-archive@tomcat.apache.org Received: (qmail 30213 invoked by uid 500); 6 Jul 2011 12:32:12 -0000 Mailing-List: contact dev-help@tomcat.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Tomcat Developers List" Delivered-To: mailing list dev@tomcat.apache.org Received: (qmail 30203 invoked by uid 99); 6 Jul 2011 12:32:12 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 06 Jul 2011 12:32:12 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 06 Jul 2011 12:32:11 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 626D923888CE for ; Wed, 6 Jul 2011 12:31:51 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1143379 - in /tomcat/trunk: java/org/apache/catalina/tribes/transport/ReceiverBase.java webapps/docs/changelog.xml Date: Wed, 06 Jul 2011 12:31:51 -0000 To: dev@tomcat.apache.org From: markt@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110706123151.626D923888CE@eris.apache.org> Author: markt Date: Wed Jul 6 12:31:50 2011 New Revision: 1143379 URL: http://svn.apache.org/viewvc?rev=1143379&view=rev Log: Add sync to fix test failures on Linux. Should have minimal impact in normal Tomcat usage since each instance/JVM only opens a single socket. Modified: tomcat/trunk/java/org/apache/catalina/tribes/transport/ReceiverBase.java tomcat/trunk/webapps/docs/changelog.xml Modified: tomcat/trunk/java/org/apache/catalina/tribes/transport/ReceiverBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/transport/ReceiverBase.java?rev=1143379&r1=1143378&r2=1143379&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/tribes/transport/ReceiverBase.java (original) +++ tomcat/trunk/java/org/apache/catalina/tribes/transport/ReceiverBase.java Wed Jul 6 12:31:50 2011 @@ -50,6 +50,8 @@ public abstract class ReceiverBase imple private static final Log log = LogFactory.getLog(ReceiverBase.class); + private static final Object bindLock = new Object(); + private MessageListener listener; private String host = "auto"; private InetAddress bind; @@ -220,23 +222,25 @@ public abstract class ReceiverBase imple * @throws IOException */ protected void bind(ServerSocket socket, int portstart, int retries) throws IOException { - InetSocketAddress addr = null; - int port = portstart; - while (retries > 0) { - try { - addr = new InetSocketAddress(getBind(), port); - socket.bind(addr); - setPort(port); - log.info("Receiver Server Socket bound to:"+addr); - retries = 0; - } catch ( IOException x) { - retries--; - if ( retries <= 0 ) { - log.info("Unable to bind server socket to:" + addr + - " throwing error."); - throw x; + synchronized (bindLock) { + InetSocketAddress addr = null; + int port = portstart; + while (retries > 0) { + try { + addr = new InetSocketAddress(getBind(), port); + socket.bind(addr); + setPort(port); + log.info("Receiver Server Socket bound to:"+addr); + retries = 0; + } catch ( IOException x) { + retries--; + if ( retries <= 0 ) { + log.info("Unable to bind server socket to:" + addr + + " throwing error."); + throw x; + } + port++; } - port++; } } } Modified: tomcat/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1143379&r1=1143378&r2=1143379&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/changelog.xml (original) +++ tomcat/trunk/webapps/docs/changelog.xml Wed Jul 6 12:31:50 2011 @@ -95,6 +95,10 @@ Start to convert non-JUnit tests to JUnit. Remove unnecessary code. (markt) + + Add synchronization to receiver socket binding to prevent test failures + on Linuz. (markt) + --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org For additional commands, e-mail: dev-help@tomcat.apache.org