Author: kkolinko
Date: Sun Nov  7 04:22:07 2010
New Revision: 1032209

URL: http://svn.apache.org/viewvc?rev=1032209&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/tc5.5.x/trunk/STATUS.txt
    
tomcat/tc5.5.x/trunk/connectors/jk/java/org/apache/jk/common/ChannelNioSocket.java
    
tomcat/tc5.5.x/trunk/connectors/jk/java/org/apache/jk/common/ChannelSocket.java
    tomcat/tc5.5.x/trunk/connectors/jk/java/org/apache/jk/server/JkMain.java
    tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml

Modified: tomcat/tc5.5.x/trunk/STATUS.txt
URL: 
http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/STATUS.txt?rev=1032209&r1=1032208&r2=1032209&view=diff
==============================================================================
--- tomcat/tc5.5.x/trunk/STATUS.txt (original)
+++ tomcat/tc5.5.x/trunk/STATUS.txt Sun Nov  7 04:22:07 2010
@@ -48,24 +48,3 @@ PATCHES PROPOSED TO BACKPORT:
   -0: markt - Consensus was for disabled in 5.5.x
               http://svn.apache.org/viewvc?view=revision&revision=749019
   -1:
-
-* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=49521
-  http://people.apache.org/~kkolinko/patches/2010-07-17_tc55_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, funkman
-  -1:
-  -0: rjung, jim, timw
-  rjung: Should we really change default behaviour for a mature version?
-  kkolinko: (I think that hardly anyone uses that feature, and if it is needed,
-  one can reenable it now by setting the maxPort attribute.
-  It is possible to make this configurable without changing the default
-  -- see attachment 25657 in BZ 49521, but I do not think that it is worth it.)
-  jim: Also not comfortable with such a change this late in the game
-       regarding default behavior of a stable branch.
-  timw: This caused major pain embedding 5.5 (so I'm sorely tempted to +1)
-        , but moving to 6.0 is a decent soln.
-        Probably not worth changing this late in the evolution of 5.5.

Modified: 
tomcat/tc5.5.x/trunk/connectors/jk/java/org/apache/jk/common/ChannelNioSocket.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/connectors/jk/java/org/apache/jk/common/ChannelNioSocket.java?rev=1032209&r1=1032208&r2=1032209&view=diff
==============================================================================
--- 
tomcat/tc5.5.x/trunk/connectors/jk/java/org/apache/jk/common/ChannelNioSocket.java
 (original)
+++ 
tomcat/tc5.5.x/trunk/connectors/jk/java/org/apache/jk/common/ChannelNioSocket.java
 Sun Nov  7 04:22:07 2010
@@ -91,7 +91,7 @@ public class ChannelNioSocket extends Jk
         org.apache.commons.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/tc5.5.x/trunk/connectors/jk/java/org/apache/jk/common/ChannelSocket.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/connectors/jk/java/org/apache/jk/common/ChannelSocket.java?rev=1032209&r1=1032208&r2=1032209&view=diff
==============================================================================
--- 
tomcat/tc5.5.x/trunk/connectors/jk/java/org/apache/jk/common/ChannelSocket.java 
(original)
+++ 
tomcat/tc5.5.x/trunk/connectors/jk/java/org/apache/jk/common/ChannelSocket.java 
Sun Nov  7 04:22:07 2010
@@ -81,7 +81,7 @@ public class ChannelSocket extends JkHan
         org.apache.commons.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;
@@ -126,7 +126,6 @@ public class ChannelSocket extends JkHan
     public void setPort( int port ) {
         this.startPort=port;
         this.port=port;
-        this.maxPort=port+10;
     }
 
     public int getPort() {
@@ -368,9 +367,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 );
@@ -387,7 +387,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/tc5.5.x/trunk/connectors/jk/java/org/apache/jk/server/JkMain.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/connectors/jk/java/org/apache/jk/server/JkMain.java?rev=1032209&r1=1032208&r2=1032209&view=diff
==============================================================================
--- tomcat/tc5.5.x/trunk/connectors/jk/java/org/apache/jk/server/JkMain.java 
(original)
+++ tomcat/tc5.5.x/trunk/connectors/jk/java/org/apache/jk/server/JkMain.java 
Sun Nov  7 04:22:07 2010
@@ -479,6 +479,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/tc5.5.x/trunk/container/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml?rev=1032209&r1=1032208&r2=1032209&view=diff
==============================================================================
--- tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml (original)
+++ tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml Sun Nov  7 
04:22:07 2010
@@ -65,6 +65,17 @@
       </fix>
     </changelog>
   </subsection>
+  <subsection name="Coyote">
+    <changelog>
+      <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. (kkolinko)
+      </fix>
+    </changelog>
+  </subsection>
   <subsection name="Jasper">
     <changelog>
       <fix>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to