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

Reply via email to