Author: kkolinko
Date: Thu Jan  7 06:12:35 2016
New Revision: 1723466

URL: http://svn.apache.org/viewvc?rev=1723466&view=rev
Log:
Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=51503
Add additional validation that prevents a connector from starting if it does 
not have a valid port number.

A backport of r1147949.

Implementation notes:
1. Port number default was changed to -1, as somebody may actually use the 
value of 0, and in view of future implementation of BZ 52028
2. The check in start() method is located after registration of a JMX bean.
The reason is that somebody may use JMX to reconfigure a connector.
In Tomcat 7 the JMX registration is performed at init time (in 
LifecycleMBeanBase.initInternal())

Modified:
    tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/Connector.java
    
tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/LocalStrings.properties
    tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml

Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/Connector.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/Connector.java?rev=1723466&r1=1723465&r2=1723466&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/Connector.java 
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/Connector.java Thu 
Jan  7 06:12:35 2016
@@ -146,7 +146,7 @@ public class Connector
     /**
      * The port number on which we listen for requests.
      */
-    protected int port = 0;
+    protected int port = -1;
 
 
     /**
@@ -1192,6 +1192,12 @@ public class Connector
                      ("coyoteConnector.cannotRegisterProtocol"));
         }
 
+        // Validate settings before starting
+        if (getPort() < 0) {
+            throw new LifecycleException(sm.getString(
+                    "coyoteConnector.invalidPort", String.valueOf(getPort())));
+        }
+
         try {
             protocolHandler.start();
         } catch (Exception e) {

Modified: 
tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/LocalStrings.properties
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/LocalStrings.properties?rev=1723466&r1=1723465&r2=1723466&view=diff
==============================================================================
--- 
tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/LocalStrings.properties 
(original)
+++ 
tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/LocalStrings.properties 
Thu Jan  7 06:12:35 2016
@@ -20,6 +20,7 @@
 coyoteConnector.alreadyInitialized=The connector has already been initialized
 coyoteConnector.alreadyStarted=The connector has already been started
 coyoteConnector.cannotRegisterProtocol=Cannot register MBean for the Protocol
+coyoteConnector.invalidPort=The connector cannot start since the specified 
port value of [{0}] is invalid
 coyoteConnector.notStarted=Coyote connector has not been started
 coyoteConnector.protocolHandlerDestroyFailed=Protocol handler destroy failed: 
{0}
 coyoteConnector.protocolHandlerInitializationFailed=Protocol handler 
initialization failed: {0}

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=1723466&r1=1723465&r2=1723466&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml Thu Jan  7 06:12:35 2016
@@ -112,6 +112,10 @@
         implementation to ease future maintenance. (markt)
       </add>
       <fix>
+        <bug>51503</bug>: Add additional validation that prevents a connector
+        from starting if it does not have a valid port number. (kkolinko)
+      </fix>
+      <fix>
         <bug>52926</bug>: Avoid NPE when an NIO Comet connection times out on
         one thread at the same time as it is closed on another thread.
         (markt/kkolinko)



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

Reply via email to