You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2018/10/29 15:17:01 UTC

svn commit: r1845136 - in /tomcat/trunk: java/org/apache/catalina/connector/Connector.java java/org/apache/tomcat/util/net/AbstractEndpoint.java webapps/docs/changelog.xml

Author: markt
Date: Mon Oct 29 15:17:01 2018
New Revision: 1845136

URL: http://svn.apache.org/viewvc?rev=1845136&view=rev
Log:
Refactor the Connector so that the port is obtained from the Endpoint rather than a local field that could end up out of sync.

Modified:
    tomcat/trunk/java/org/apache/catalina/connector/Connector.java
    tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java
    tomcat/trunk/webapps/docs/changelog.xml

Modified: tomcat/trunk/java/org/apache/catalina/connector/Connector.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/Connector.java?rev=1845136&r1=1845135&r2=1845136&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/Connector.java (original)
+++ tomcat/trunk/java/org/apache/catalina/connector/Connector.java Mon Oct 29 15:17:01 2018
@@ -146,12 +146,6 @@ public class Connector extends Lifecycle
 
 
     /**
-     * The port number on which we listen for requests.
-     */
-    protected int port = -1;
-
-
-    /**
      * The server name to which we should pretend requests to this Connector
      * were directed.  This is useful when operating Tomcat behind a proxy
      * server, so that redirects get constructed accurately.  If not specified,
@@ -516,7 +510,12 @@ public class Connector extends Lifecycle
      * when the socket is bound.
      */
     public int getPort() {
-        return this.port;
+        Object port = getProperty("port");
+        if (port == null) {
+            return -1;
+        } else {
+            return ((Integer) port).intValue();
+        }
     }
 
 
@@ -526,7 +525,6 @@ public class Connector extends Lifecycle
      * @param port The new port number
      */
     public void setPort(int port) {
-        this.port = port;
         setProperty("port", String.valueOf(port));
     }
 

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java?rev=1845136&r1=1845135&r2=1845136&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java Mon Oct 29 15:17:01 2018
@@ -451,7 +451,7 @@ public abstract class AbstractEndpoint<S
     /**
      * Server socket port.
      */
-    private int port;
+    private int port = -1;
     public int getPort() { return port; }
     public void setPort(int port ) { this.port=port; }
 

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1845136&r1=1845135&r2=1845136&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Mon Oct 29 15:17:01 2018
@@ -126,6 +126,11 @@
         <code>Library.load(filename)</code> to load a native library by a
         shared class loader so that more than one Webapp can use it. (isapir)
       </add>
+      <scode>
+        Refactor the <code>Connector</code> so that the port is obtained from
+        the <code>Endpoint</code> rather than a local field that could end up
+        out of sync. (markt)
+      </scode>
     </changelog>
   </subsection>
   <subsection name="Coyote">



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


Re: svn commit: r1845136 - in /tomcat/trunk: java/org/apache/catalina/connector/Connector.java java/org/apache/tomcat/util/net/AbstractEndpoint.java webapps/docs/changelog.xml

Posted by Rémy Maucherat <re...@apache.org>.
On Mon, Oct 29, 2018 at 6:13 PM Mark Thomas <ma...@apache.org> wrote:

> On 29/10/2018 16:56, Mark Thomas wrote:
> > On 29/10/2018 16:41, Rémy Maucherat wrote:
> >> On Mon, Oct 29, 2018 at 4:17 PM <ma...@apache.org> wrote:
> >>
> >>> Author: markt
> >>> Date: Mon Oct 29 15:17:01 2018
> >>> New Revision: 1845136
> >>>
> >>> URL: http://svn.apache.org/viewvc?rev=1845136&view=rev
> >>> Log:
> >>> Refactor the Connector so that the port is obtained from the Endpoint
> >>> rather than a local field that could end up out of sync.
> >>>
> >>> Modified:
> >>>      tomcat/trunk/java/org/apache/catalina/connector/Connector.java
> >>>      tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java
> >>>      tomcat/trunk/webapps/docs/changelog.xml
> >>>
> >>
> >> I have the feeling that duplication was there because port was used a
> bit
> >> more than other things (like in the two "security" valves) and the
> lookup
> >> is more expensive now.
> >
> > Good point. I need to rethink that / maybe revert it.
>
> I've updated that code.
>
> The really slow part (the reflection) will be skipped when using a
> standard protocol implementation.
>
> Do you think it is OK now or would you prefer I revert the changes?
>

It's good. It's only used in  RemoteAddr/HostValve with an optional
configuration where the port is used.

Rémy

Re: svn commit: r1845136 - in /tomcat/trunk: java/org/apache/catalina/connector/Connector.java java/org/apache/tomcat/util/net/AbstractEndpoint.java webapps/docs/changelog.xml

Posted by Mark Thomas <ma...@apache.org>.
On 29/10/2018 16:56, Mark Thomas wrote:
> On 29/10/2018 16:41, Rémy Maucherat wrote:
>> On Mon, Oct 29, 2018 at 4:17 PM <ma...@apache.org> wrote:
>>
>>> Author: markt
>>> Date: Mon Oct 29 15:17:01 2018
>>> New Revision: 1845136
>>>
>>> URL: http://svn.apache.org/viewvc?rev=1845136&view=rev
>>> Log:
>>> Refactor the Connector so that the port is obtained from the Endpoint
>>> rather than a local field that could end up out of sync.
>>>
>>> Modified:
>>>      tomcat/trunk/java/org/apache/catalina/connector/Connector.java
>>>      tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java
>>>      tomcat/trunk/webapps/docs/changelog.xml
>>>
>>
>> I have the feeling that duplication was there because port was used a bit
>> more than other things (like in the two "security" valves) and the lookup
>> is more expensive now.
> 
> Good point. I need to rethink that / maybe revert it.

I've updated that code.

The really slow part (the reflection) will be skipped when using a 
standard protocol implementation.

Do you think it is OK now or would you prefer I revert the changes?

Mark

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


Re: svn commit: r1845136 - in /tomcat/trunk: java/org/apache/catalina/connector/Connector.java java/org/apache/tomcat/util/net/AbstractEndpoint.java webapps/docs/changelog.xml

Posted by Mark Thomas <ma...@apache.org>.
On 29/10/2018 16:41, Rémy Maucherat wrote:
> On Mon, Oct 29, 2018 at 4:17 PM <ma...@apache.org> wrote:
> 
>> Author: markt
>> Date: Mon Oct 29 15:17:01 2018
>> New Revision: 1845136
>>
>> URL: http://svn.apache.org/viewvc?rev=1845136&view=rev
>> Log:
>> Refactor the Connector so that the port is obtained from the Endpoint
>> rather than a local field that could end up out of sync.
>>
>> Modified:
>>      tomcat/trunk/java/org/apache/catalina/connector/Connector.java
>>      tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java
>>      tomcat/trunk/webapps/docs/changelog.xml
>>
> 
> I have the feeling that duplication was there because port was used a bit
> more than other things (like in the two "security" valves) and the lookup
> is more expensive now.

Good point. I need to rethink that / maybe revert it.

Mark

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


Re: svn commit: r1845136 - in /tomcat/trunk: java/org/apache/catalina/connector/Connector.java java/org/apache/tomcat/util/net/AbstractEndpoint.java webapps/docs/changelog.xml

Posted by Rémy Maucherat <re...@apache.org>.
On Mon, Oct 29, 2018 at 4:17 PM <ma...@apache.org> wrote:

> Author: markt
> Date: Mon Oct 29 15:17:01 2018
> New Revision: 1845136
>
> URL: http://svn.apache.org/viewvc?rev=1845136&view=rev
> Log:
> Refactor the Connector so that the port is obtained from the Endpoint
> rather than a local field that could end up out of sync.
>
> Modified:
>     tomcat/trunk/java/org/apache/catalina/connector/Connector.java
>     tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java
>     tomcat/trunk/webapps/docs/changelog.xml
>

I have the feeling that duplication was there because port was used a bit
more than other things (like in the two "security" valves) and the lookup
is more expensive now.

Rémy