Author: markt Date: Wed Sep 22 15:03:28 2010 New Revision: 1000020 URL: http://svn.apache.org/viewvc?rev=1000020&view=rev Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=49521 - Disable scanning for a free port in Jk AJP/1.3 connector by default. - Do not change maxPort field value of ChannelSocket in its #setPort() and #init() methods. - Add support for "maxPort" attribute on a <Connector> element as a synonym for channelSocket.maxPort
Modified: tomcat/tc6.0.x/trunk/STATUS.txt tomcat/tc6.0.x/trunk/java/org/apache/jk/common/ChannelNioSocket.java tomcat/tc6.0.x/trunk/java/org/apache/jk/common/ChannelSocket.java tomcat/tc6.0.x/trunk/java/org/apache/jk/server/JkMain.java tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml Modified: tomcat/tc6.0.x/trunk/STATUS.txt URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=1000020&r1=1000019&r2=1000020&view=diff ============================================================================== --- tomcat/tc6.0.x/trunk/STATUS.txt (original) +++ tomcat/tc6.0.x/trunk/STATUS.txt Wed Sep 22 15:03:28 2010 @@ -138,16 +138,6 @@ PATCHES PROPOSED TO BACKPORT: but from debugging it looks that it is called by Tomcat code only (JspServlet). -* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=49521 - http://people.apache.org/~kkolinko/patches/2010-07-17_tc6_bug49521.patch - - Disable scanning for a free port in Jk AJP/1.3 connector by default. - - Do not change maxPort field value of ChannelSocket in its #setPort() - and #init() methods. - - Add support for "maxPort" attribute on a <Connector> element as a synonym - for channelSocket.maxPort - +1: kkolinko, markt, kfujino - -1: - * Allow off-line building of the extras packages. Also saves downloading deps every build http://people.apache.org/~markt/patches/2010-08-23-offline-extras-tc6.patch Modified: tomcat/tc6.0.x/trunk/java/org/apache/jk/common/ChannelNioSocket.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/jk/common/ChannelNioSocket.java?rev=1000020&r1=1000019&r2=1000020&view=diff ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/jk/common/ChannelNioSocket.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/jk/common/ChannelNioSocket.java Wed Sep 22 15:03:28 2010 @@ -91,7 +91,7 @@ public class ChannelNioSocket extends Jk org.apache.juli.logging.LogFactory.getLog( ChannelNioSocket.class ); private int startPort=8009; - private int maxPort=8019; // 0 for backward compat. + private int maxPort=0; // 0 disables free port scanning private int port=startPort; private InetAddress inet; private int serverTimeout = 0; @@ -142,7 +142,6 @@ public class ChannelNioSocket extends Jk public void setPort( int port ) { this.startPort=port; this.port=port; - this.maxPort=port+10; } public int getPort() { @@ -386,11 +385,12 @@ public class ChannelNioSocket extends Jk running = true; return; } - if (maxPort < startPort) - maxPort = startPort; + int endPort = maxPort; + if (endPort < startPort) + endPort = startPort; ServerSocketChannel ssc = ServerSocketChannel.open(); ssc.configureBlocking(false); - for( int i=startPort; i<=maxPort; i++ ) { + for( int i=startPort; i<=endPort; i++ ) { try { InetSocketAddress iddr = null; if( inet == null ) { @@ -410,7 +410,7 @@ public class ChannelNioSocket extends Jk } if( sSocket==null ) { - log.error("Can't find free port " + startPort + " " + maxPort ); + log.error("Can't find free port " + startPort + " " + endPort ); return; } if(log.isInfoEnabled()) Modified: tomcat/tc6.0.x/trunk/java/org/apache/jk/common/ChannelSocket.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/jk/common/ChannelSocket.java?rev=1000020&r1=1000019&r2=1000020&view=diff ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/jk/common/ChannelSocket.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/jk/common/ChannelSocket.java Wed Sep 22 15:03:28 2010 @@ -81,7 +81,7 @@ public class ChannelSocket extends JkHan org.apache.juli.logging.LogFactory.getLog( ChannelSocket.class ); private int startPort=8009; - private int maxPort=8019; // 0 for backward compat. + private int maxPort=0; // 0 disables free port scanning private int port=startPort; private int backlog = 0; private InetAddress inet; @@ -125,7 +125,6 @@ public class ChannelSocket extends JkHan public void setPort( int port ) { this.startPort=port; this.port=port; - this.maxPort=port+10; } public int getPort() { @@ -367,9 +366,10 @@ public class ChannelSocket extends JkHan running = true; return; } - if (maxPort < startPort) - maxPort = startPort; - for( int i=startPort; i<=maxPort; i++ ) { + int endPort = maxPort; + if (endPort < startPort) + endPort = startPort; + for( int i=startPort; i<=endPort; i++ ) { try { if( inet == null ) { sSocket = new ServerSocket( i, backlog ); @@ -386,7 +386,7 @@ public class ChannelSocket extends JkHan } if( sSocket==null ) { - log.error("Can't find free port " + startPort + " " + maxPort ); + log.error("Can't find free port " + startPort + " " + endPort ); return; } if(log.isInfoEnabled()) Modified: tomcat/tc6.0.x/trunk/java/org/apache/jk/server/JkMain.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/jk/server/JkMain.java?rev=1000020&r1=1000019&r2=1000020&view=diff ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/jk/server/JkMain.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/jk/server/JkMain.java Wed Sep 22 15:03:28 2010 @@ -521,6 +521,7 @@ public class JkMain implements MBeanRegi static Hashtable replacements=new Hashtable(); static { replacements.put("port","channelSocket.port"); + replacements.put("maxPort", "channelSocket.maxPort"); replacements.put("maxThreads", "channelSocket.maxThreads"); replacements.put("minSpareThreads", "channelSocket.minSpareThreads"); replacements.put("maxSpareThreads", "channelSocket.maxSpareThreads"); Modified: tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml?rev=1000020&r1=1000019&r2=1000020&view=diff ============================================================================== --- tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml Wed Sep 22 15:03:28 2010 @@ -96,6 +96,13 @@ session before the current request has a chance to send the replication message. (markt) </fix> + <fix> + <bug>49521</bug>: Disable scanning for a free port in Jk AJP/1.3 + connector by default. Do not change maxPort field value of ChannelSocket + in its <code>setPort()</code> and <code>init()</code> methods. Add + support for <code>maxPort</code> attribute on a <code>Connector</code> + element as a synonym for channelSocket.maxPort + </fix> </changelog> </subsection> <subsection name="Cluster"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org