Author: markt
Date: Mon Nov 28 23:20:46 2011
New Revision: 1207695
URL: http://svn.apache.org/viewvc?rev=1207695&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=52028
Add support for automatic selection of a free port for a connector when the
special value of zero is used
Modified:
tomcat/tc7.0.x/trunk/ (props changed)
tomcat/tc7.0.x/trunk/java/org/apache/catalina/connector/Connector.java
tomcat/tc7.0.x/trunk/java/org/apache/catalina/connector/mbeans-descriptors.xml
tomcat/tc7.0.x/trunk/java/org/apache/coyote/AbstractProtocol.java
tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java
tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java
tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java
tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
tomcat/tc7.0.x/trunk/test/org/apache/catalina/authenticator/TestFormAuthenticator.java
tomcat/tc7.0.x/trunk/test/org/apache/catalina/connector/TestConnector.java
tomcat/tc7.0.x/trunk/test/org/apache/catalina/connector/TestRequest.java
tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TestStandardContext.java
tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TestSwallowAbortedUploads.java
tomcat/tc7.0.x/trunk/test/org/apache/catalina/filters/TestExpiresFilter.java
tomcat/tc7.0.x/trunk/test/org/apache/catalina/filters/TestRemoteIpFilter.java
tomcat/tc7.0.x/trunk/test/org/apache/catalina/mbeans/TestRegistration.java
tomcat/tc7.0.x/trunk/test/org/apache/catalina/servlets/TestDefaultServlet.java
tomcat/tc7.0.x/trunk/test/org/apache/catalina/startup/SimpleHttpClient.java
tomcat/tc7.0.x/trunk/test/org/apache/catalina/startup/TomcatBaseTest.java
tomcat/tc7.0.x/trunk/test/org/apache/coyote/http11/TestAbstractHttp11Processor.java
tomcat/tc7.0.x/trunk/test/org/apache/coyote/http11/TestInternalInputBuffer.java
tomcat/tc7.0.x/trunk/test/org/apache/coyote/http11/filters/TestChunkedInputFilter.java
tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/http/TestCookiesAllowEquals.java
tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/http/TestCookiesAllowHttpSeps.java
tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/http/TestCookiesAllowNameOnly.java
tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/http/TestCookiesDisallowEquals.java
tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/net/TestXxxEndpoint.java
tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
tomcat/tc7.0.x/trunk/webapps/docs/config/ajp.xml
tomcat/tc7.0.x/trunk/webapps/docs/config/http.xml
Propchange: tomcat/tc7.0.x/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Nov 28 23:20:46 2011
@@ -1 +1 @@
-/tomcat/trunk:1156115,1156171,1156276,1156304,1156519,1156530,1156602,1157015,1157018,1157151,1157198,1157204,1157810,1157832,1157834,1157847,1157908,1157939,1158155,1158160,1158176,1158195,1158198-1158199,1158227,1158331,1158334-1158335,1158426,1160347,1160592,1160611,1160619,1160626,1160639,1160652,1160720-1160721,1160772,1160774,1160776,1161303,1161310,1161322,1161339,1161486,1161540,1161549,1161584,1162082,1162149,1162169,1162721,1162769,1162836,1162932,1163630,1164419,1164438,1164469,1164480,1164567,1165234,1165247-1165248,1165253,1165273,1165282,1165309,1165331,1165338,1165347,1165360-1165361,1165367-1165368,1165602,1165608,1165677,1165693,1165721,1165723,1165728,1165730,1165738,1165746,1165765,1165777,1165918,1165921,1166077,1166150-1166151,1166290,1166366,1166620,1166686,1166693,1166752,1166757,1167368,1167394,1169447,1170647,1171692,1172233-1172234,1172236,1172269,1172278,1172282,1172556,1172610,1172664,1172689,1172711,1173020-1173021,1173082,1173088,1173090,1173096
,1173241,1173256,1173288,1173333,1173342,1173461,1173614,1173630,1173659,1173722,1174061,1174239,1174322,1174325,1174329-1174330,1174337-1174339,1174343,1174353,1174799,1174882,1174884,1174983,1175155,1175158,1175167,1175182,1175190,1175201,1175272,1175275,1175283,1175582,1175589-1175590,1175594,1175602,1175613,1175633,1175690,1175713,1175798,1175889,1175896,1175907,1176584,1176590,1176799,1177050,1177060,1177125,1177152,1177160,1177245,1177850,1177862,1177978,1178209,1178228,1178233,1178449,1178542,1178681,1178684,1178721,1179268,1179274,1180261,1180865,1180891,1180894,1180907,1181028,1181123,1181125,1181136,1181291,1181743,1182796,1183078,1183105,1183142,1183328,1183339-1183340,1183492-1183494,1183605,1184917,1184919,1185018,1185020,1185200,1185588,1185626,1185756,1185758,1186011,1186042-1186045,1186104,1186123,1186137,1186153,1186254,1186257,1186377-1186379,1186479-1186480,1186712,1186743,1186750,1186763,1186890-1186892,1186894,1186949,1187018,1187027-1187028,1187381,1187
753,1187755,1187775,1187801,1187806,1187809,1187827,1188301,1188303-1188305,1188399,1188822,1188930-1188931,1189116,1189129,1189183,1189240,1189256,1189386,1189413-1189414,1189477,1189685,1189805,1189857,1189864,1189882,1190034,1190185,1190279,1190339,1190371,1190388-1190389,1190474,1190481,1194915,1195222-1195223,1195531,1195899,1195905,1195943,1195949,1195953,1195955,1195965,1195968,1196175,1196212,1196223,1196304-1196305,1196735,1196825,1196827,1197158,1197261,1197263,1197299-1197300,1197305,1197339-1197340,1197343,1197382,1197386-1197387,1197480,1197578,1198497,1198528,1198552,1198602,1198604,1198607,1198622,1198640,1198696,1198707,1199418,1199432,1199436,1199513,1199529,1199980,1199996,1200056,1200089,1200106-1200107,1200263,1200316,1200320,1200398-1200399,1200445-1200446,1200555,1200627,1200696,1200725,1200937,1200941,1201069,1201087,1201180,1201235-1201237,1201508,1201521,1201542,1201545-1201546,1201548,1201555-1201556,1201568,1201576,1201608,1201921-1201922,1201931,1
202035,1202039,1202271,1202565,1202578,1202705,1202828,1202860,1203047-1203052,1203078,1203091,1203253,1203278,1204182,1204856,1204867,1204936,1204938,1204982,1205033,1205065,1205082,1205097,1205112,1206200
+/tomcat/trunk:1156115,1156171,1156276,1156304,1156519,1156530,1156602,1157015,1157018,1157151,1157198,1157204,1157810,1157832,1157834,1157847,1157908,1157939,1158155,1158160,1158176,1158195,1158198-1158199,1158227,1158331,1158334-1158335,1158426,1160347,1160592,1160611,1160619,1160626,1160639,1160652,1160720-1160721,1160772,1160774,1160776,1161303,1161310,1161322,1161339,1161486,1161540,1161549,1161584,1162082,1162149,1162169,1162721,1162769,1162836,1162932,1163630,1164419,1164438,1164469,1164480,1164567,1165234,1165247-1165248,1165253,1165273,1165282,1165309,1165331,1165338,1165347,1165360-1165361,1165367-1165368,1165602,1165608,1165677,1165693,1165721,1165723,1165728,1165730,1165738,1165746,1165765,1165777,1165918,1165921,1166077,1166150-1166151,1166290,1166366,1166620,1166686,1166693,1166752,1166757,1167368,1167394,1169447,1170647,1171692,1172233-1172234,1172236,1172269,1172278,1172282,1172556,1172610,1172664,1172689,1172711,1173020-1173021,1173082,1173088,1173090,1173096
,1173241,1173256,1173288,1173333,1173342,1173461,1173614,1173630,1173659,1173722,1174061,1174239,1174322,1174325,1174329-1174330,1174337-1174339,1174343,1174353,1174799,1174882,1174884,1174983,1175155,1175158,1175167,1175182,1175190,1175201,1175272,1175275,1175283,1175582,1175589-1175590,1175594,1175602,1175613,1175633,1175690,1175713,1175798,1175889,1175896,1175907,1176584,1176590,1176799,1177050,1177060,1177125,1177152,1177160,1177245,1177850,1177862,1177978,1178209,1178228,1178233,1178449,1178542,1178681,1178684,1178721,1179268,1179274,1180261,1180865,1180891,1180894,1180907,1181028,1181123,1181125,1181136,1181291,1181743,1182796,1183078,1183105,1183142,1183328,1183339-1183340,1183492-1183494,1183605,1184917,1184919,1185018,1185020,1185200,1185588,1185626,1185756,1185758,1186011,1186042-1186045,1186104,1186123,1186137,1186153,1186254,1186257,1186377-1186379,1186479-1186480,1186712,1186743,1186750,1186763,1186890-1186892,1186894,1186949,1187018,1187027-1187028,1187381,1187
753,1187755,1187775,1187801,1187806,1187809,1187827,1188301,1188303-1188305,1188399,1188822,1188930-1188931,1189116,1189129,1189183,1189240,1189256,1189386,1189413-1189414,1189477,1189685,1189805,1189857,1189864,1189882,1190034,1190185,1190279,1190339,1190371,1190388-1190389,1190474,1190481,1194915,1195222-1195223,1195531,1195899,1195905,1195943,1195949,1195953,1195955,1195965,1195968,1196175,1196212,1196223,1196304-1196305,1196735,1196825,1196827,1197158,1197261,1197263,1197299-1197300,1197305,1197339-1197340,1197343,1197382,1197386-1197387,1197480,1197578,1198497,1198528,1198552,1198602,1198604,1198607,1198622,1198640,1198696,1198707,1199418,1199432,1199436,1199513,1199529,1199980,1199996,1200056,1200089,1200106-1200107,1200263,1200316,1200320,1200398-1200399,1200445-1200446,1200555,1200627,1200696,1200725,1200937,1200941,1201069,1201087,1201180,1201235-1201237,1201508,1201521,1201542,1201545-1201546,1201548,1201555-1201556,1201568,1201576,1201608,1201921-1201922,1201931,1
202035,1202039,1202271,1202565,1202578,1202705,1202828,1202860,1203047-1203052,1203078,1203091,1203253,1203278,1204182,1204856,1204867,1204936,1204938,1204982,1205033,1205065,1205082,1205097,1205112,1206200,1207692
Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/connector/Connector.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/connector/Connector.java?rev=1207695&r1=1207694&r2=1207695&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/catalina/connector/Connector.java
(original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/connector/Connector.java Mon
Nov 28 23:20:46 2011
@@ -60,7 +60,6 @@ public class Connector extends Lifecycle
// ------------------------------------------------------------ Constructor
-
public Connector() {
this(null);
}
@@ -121,7 +120,7 @@ public class Connector extends Lifecycle
/**
* The port number on which we listen for requests.
*/
- protected int port = 0;
+ protected int port = -1;
/**
@@ -264,7 +263,6 @@ public class Connector extends Lifecycle
// ------------------------------------------------------------- Properties
-
/**
* Return a configured property.
*/
@@ -514,7 +512,9 @@ public class Connector extends Lifecycle
}
/**
- * Return the port number on which we listen for requests.
+ * Return the port number on which this connector is configured to listen
+ * for requests. The special value of 0 means select a random free port
+ * when the socket is bound.
*/
public int getPort() {
@@ -537,6 +537,16 @@ public class Connector extends Lifecycle
/**
+ * Return the port number on which this connector is listening to requests.
+ * If the special value for {@link #port} of zero is used then this method
+ * will report the actual port bound.
+ */
+ public int getLocalPort() {
+ return ((Integer) getProperty("localPort")).intValue();
+ }
+
+
+ /**
* Return the Coyote protocol handler in use.
*/
public String getProtocol() {
@@ -881,7 +891,13 @@ public class Connector extends Lifecycle
StringBuilder sb = new StringBuilder("type=");
sb.append(type);
sb.append(",port=");
- sb.append(getPort());
+ int port = getPort();
+ if (port > 0) {
+ sb.append(getPort());
+ } else {
+ sb.append("auto-");
+ sb.append(getProperty("nameIndex"));
+ }
if (addressObj != null) {
String address = addressObj.toString();
if (address.length() > 0) {
@@ -955,7 +971,7 @@ public class Connector extends Lifecycle
protected void startInternal() throws LifecycleException {
// Validate settings before starting
- if (getPort() < 1) {
+ if (getPort() < 0) {
throw new LifecycleException(sm.getString(
"coyoteConnector.invalidPort",
Integer.valueOf(getPort())));
}
@@ -1031,11 +1047,18 @@ public class Connector extends Lifecycle
StringBuilder sb = new StringBuilder("Connector[");
sb.append(getProtocol());
sb.append('-');
- sb.append(getPort());
+ int port = getPort();
+ if (port > 0) {
+ sb.append(getPort());
+ } else {
+ sb.append("auto-");
+ sb.append(getProperty("nameIndex"));
+ }
sb.append(']');
return sb.toString();
}
+
// -------------------- JMX registration --------------------
@Override
Modified:
tomcat/tc7.0.x/trunk/java/org/apache/catalina/connector/mbeans-descriptors.xml
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/connector/mbeans-descriptors.xml?rev=1207695&r1=1207694&r2=1207695&view=diff
==============================================================================
---
tomcat/tc7.0.x/trunk/java/org/apache/catalina/connector/mbeans-descriptors.xml
(original)
+++
tomcat/tc7.0.x/trunk/java/org/apache/catalina/connector/mbeans-descriptors.xml
Mon Nov 28 23:20:46 2011
@@ -77,6 +77,10 @@
description="The number of seconds Tomcat will wait for a subsequent
request before closing the connection"
type="int"/>
+ <attribute name="localPort"
+ description="The port number on which this connector is listening to
requests. If the special value for port of zero is used then this method will
report the actual port bound."
+ type="int"/>
+
<attribute name="maxKeepAliveRequests"
description="Maximum number of Keep-Alive requests to honor per
connection"
type="int"/>
@@ -108,7 +112,7 @@
type="int"/>
<attribute name="port"
- description="The port number on which we listen for requests"
+ description="The port number on which this connector is configured
to listen for requests. The special value of 0 means select a random free port
when the socket is bound."
type="int"/>
<!-- Common -->
Modified: tomcat/tc7.0.x/trunk/java/org/apache/coyote/AbstractProtocol.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/coyote/AbstractProtocol.java?rev=1207695&r1=1207694&r2=1207695&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/coyote/AbstractProtocol.java (original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/coyote/AbstractProtocol.java Mon Nov
28 23:20:46 2011
@@ -48,6 +48,13 @@ public abstract class AbstractProtocol i
/**
+ * Counter used to generate unique JMX names for connectors using automatic
+ * port binding.
+ */
+ private static final AtomicInteger nameCounter = new AtomicInteger(0);
+
+
+ /**
* Name of MBean for the Global Request Processor.
*/
protected ObjectName rgOname = null;
@@ -60,6 +67,14 @@ public abstract class AbstractProtocol i
/**
+ * Unique ID for this connector. Only used if the connector is configured
+ * to use a random port as the port will change if stop(), start() is
+ * called.
+ */
+ private int nameIndex = 0;
+
+
+ /**
* Endpoint that provides low-level network I/O - must be matched to the
* ProtocolHandler implementation (ProtocolHandler using BIO, requires BIO
* Endpoint etc.).
@@ -194,6 +209,8 @@ public abstract class AbstractProtocol i
}
+ public int getLocalPort() { return endpoint.getLocalPort(); }
+
/*
* When Tomcat expects data from the client, this is the time Tomcat will
* wait for that data to arrive before closing the connection.
@@ -220,6 +237,15 @@ public abstract class AbstractProtocol i
// ---------------------------------------------------------- Public
methods
+ public synchronized int getNameIndex() {
+ if (nameIndex == 0) {
+ nameIndex = nameCounter.incrementAndGet();
+ }
+
+ return nameIndex;
+ }
+
+
/**
* The name will be prefix-address-port if address is non-null and
* prefix-port if the address is null. The name will be appropriately
quoted
@@ -232,7 +258,13 @@ public abstract class AbstractProtocol i
name.append(getAddress());
name.append('-');
}
- name.append(endpoint.getPort());
+ int port = getLocalPort();
+ if (port > 0) {
+ name.append(port);
+ } else {
+ name.append("auto-");
+ name.append(getNameIndex());
+ }
return ObjectName.quote(name.toString());
}
@@ -313,7 +345,13 @@ public abstract class AbstractProtocol i
StringBuilder name = new StringBuilder(getDomain());
name.append(":type=ProtocolHandler,port=");
- name.append(getPort());
+ int port = getPort();
+ if (port > 0) {
+ name.append(getPort());
+ } else {
+ name.append("auto-");
+ name.append(getNameIndex());
+ }
InetAddress address = getAddress();
if (address != null) {
name.append(",address=");
@@ -322,6 +360,7 @@ public abstract class AbstractProtocol i
return new ObjectName(name.toString());
}
+
// ------------------------------------------------------- Lifecycle
methods
/*
Modified:
tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java?rev=1207695&r1=1207694&r2=1207695&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java
(original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java
Mon Nov 28 23:20:46 2011
@@ -186,6 +186,7 @@ public abstract class AbstractEndpoint {
public int getPort() { return port; }
public void setPort(int port ) { this.port=port; }
+ public abstract int getLocalPort();
/**
* Address for the server socket.
Modified: tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java?rev=1207695&r1=1207694&r2=1207695&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java
(original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Mon
Nov 28 23:20:46 2011
@@ -37,6 +37,7 @@ import org.apache.tomcat.jni.Pool;
import org.apache.tomcat.jni.SSL;
import org.apache.tomcat.jni.SSLContext;
import org.apache.tomcat.jni.SSLSocket;
+import org.apache.tomcat.jni.Sockaddr;
import org.apache.tomcat.jni.Socket;
import org.apache.tomcat.jni.Status;
import org.apache.tomcat.util.ExceptionUtils;
@@ -316,8 +317,29 @@ public class AprEndpoint extends Abstrac
public void setSSLInsecureRenegotiation(boolean SSLInsecureRenegotiation)
{ this.SSLInsecureRenegotiation = SSLInsecureRenegotiation; }
public boolean getSSLInsecureRenegotiation() { return
SSLInsecureRenegotiation; }
- // --------------------------------------------------------- Public Methods
+ /**
+ * Port in use.
+ */
+ @Override
+ public int getLocalPort() {
+ long s = serverSock;
+ if (s == 0) {
+ return -1;
+ } else {
+ long sa;
+ try {
+ sa = Address.get(Socket.APR_LOCAL, s);
+ Sockaddr addr = Address.getInfo(sa);
+ return addr.port;
+ } catch (Exception e) {
+ return -1;
+ }
+ }
+ }
+
+
+ // --------------------------------------------------------- Public Methods
/**
* Number of keepalive sockets.
Modified: tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java?rev=1207695&r1=1207694&r2=1207695&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java
(original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java Mon
Nov 28 23:20:46 2011
@@ -89,6 +89,18 @@ public class JIoEndpoint extends Abstrac
public void setServerSocketFactory(ServerSocketFactory factory) {
this.serverSocketFactory = factory; }
public ServerSocketFactory getServerSocketFactory() { return
serverSocketFactory; }
+ /**
+ * Port in use.
+ */
+ @Override
+ public int getLocalPort() {
+ ServerSocket s = serverSocket;
+ if (s == null) {
+ return -1;
+ } else {
+ return s.getLocalPort();
+ }
+ }
/*
* Optional feature support.
Modified: tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=1207695&r1=1207694&r2=1207695&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
(original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Mon
Nov 28 23:20:46 2011
@@ -21,6 +21,7 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.InetSocketAddress;
+import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketTimeoutException;
import java.nio.ByteBuffer;
@@ -387,6 +388,26 @@ public class NioEndpoint extends Abstrac
public SSLContext getSSLContext() { return sslContext;}
public void setSSLContext(SSLContext c) { sslContext = c;}
+
+ /**
+ * Port in use.
+ */
+ @Override
+ public int getLocalPort() {
+ ServerSocketChannel ssc = serverSock;
+ if (ssc == null) {
+ return -1;
+ } else {
+ ServerSocket s = ssc.socket();
+ if (s == null) {
+ return -1;
+ } else {
+ return s.getLocalPort();
+ }
+ }
+ }
+
+
// --------------------------------------------------------- OOM Parachute
Methods
protected void checkParachute() {
Modified:
tomcat/tc7.0.x/trunk/test/org/apache/catalina/authenticator/TestFormAuthenticator.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/catalina/authenticator/TestFormAuthenticator.java?rev=1207695&r1=1207694&r2=1207695&view=diff
==============================================================================
---
tomcat/tc7.0.x/trunk/test/org/apache/catalina/authenticator/TestFormAuthenticator.java
(original)
+++
tomcat/tc7.0.x/trunk/test/org/apache/catalina/authenticator/TestFormAuthenticator.java
Mon Nov 28 23:20:46 2011
@@ -115,9 +115,10 @@ public class TestFormAuthenticator exten
realm.addUserRole("tomcat", "tomcat");
ctx.setRealm(realm);
- setPort(getPort());
-
tomcat.start();
+
+ // Port only known after Tomcat starts
+ setPort(getPort());
}
private void doResourceRequest(String method) throws Exception {
Modified:
tomcat/tc7.0.x/trunk/test/org/apache/catalina/connector/TestConnector.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/catalina/connector/TestConnector.java?rev=1207695&r1=1207694&r2=1207695&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/test/org/apache/catalina/connector/TestConnector.java
(original)
+++ tomcat/tc7.0.x/trunk/test/org/apache/catalina/connector/TestConnector.java
Mon Nov 28 23:20:46 2011
@@ -19,6 +19,7 @@ package org.apache.catalina.connector;
import java.net.SocketTimeoutException;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
import org.junit.Test;
@@ -69,4 +70,26 @@ public class TestConnector extends Tomca
}
assertEquals(503, rc);
}
+
+
+ @Test
+ public void testPort() throws Exception {
+ Tomcat tomcat = getTomcatInstance();
+
+ Connector connector1 = tomcat.getConnector();
+ connector1.setPort(0);
+
+ Connector connector2 = new Connector();
+ connector2.setPort(0);
+
+ tomcat.getService().addConnector(connector2);
+
+ tomcat.start();
+
+ int localPort1 = connector1.getLocalPort();
+ int localPort2 = connector2.getLocalPort();
+
+ assertTrue(localPort1 > 0);
+ assertTrue(localPort2 > 0);
+ }
}
Modified:
tomcat/tc7.0.x/trunk/test/org/apache/catalina/connector/TestRequest.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/catalina/connector/TestRequest.java?rev=1207695&r1=1207694&r2=1207695&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/test/org/apache/catalina/connector/TestRequest.java
(original)
+++ tomcat/tc7.0.x/trunk/test/org/apache/catalina/connector/TestRequest.java
Mon Nov 28 23:20:46 2011
@@ -62,7 +62,6 @@ public class TestRequest extends TomcatB
@Test
public void testBug37794() {
Bug37794Client client = new Bug37794Client(true);
- client.setPort(getPort());
// Edge cases around zero
client.doRequest(-1, false); // Unlimited
@@ -111,7 +110,6 @@ public class TestRequest extends TomcatB
@Test
public void testBug37794withoutFilter() {
Bug37794Client client = new Bug37794Client(false);
- client.setPort(getPort());
// Edge cases around actual content length
client.reset();
@@ -180,6 +178,8 @@ public class TestRequest extends TomcatB
tomcat.start();
+ setPort(tomcat.getConnector().getLocalPort());
+
init = true;
}
@@ -391,7 +391,6 @@ public class TestRequest extends TomcatB
@Test
public void testBug48692() {
Bug48692Client client = new Bug48692Client();
- client.setPort(getPort());
// Make sure GET works properly
client.doRequest("GET", "foo=bar", null, null, false);
@@ -518,6 +517,8 @@ public class TestRequest extends TomcatB
root.addServletMapping("/echo", "EchoParameters");
tomcat.start();
+ setPort(tomcat.getConnector().getLocalPort());
+
init = true;
}
Modified:
tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TestStandardContext.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TestStandardContext.java?rev=1207695&r1=1207694&r2=1207695&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TestStandardContext.java
(original)
+++ tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TestStandardContext.java
Mon Nov 28 23:20:46 2011
@@ -97,11 +97,12 @@ public class TestStandardContext extends
Tomcat.addServlet(root, "Bug46243", new HelloWorldServlet());
root.addServletMapping("/", "Bug46243");
+
tomcat.start();
// Configure the client
- Bug46243Client client = new Bug46243Client();
- client.setPort(getPort());
+ Bug46243Client client =
+ new Bug46243Client(tomcat.getConnector().getLocalPort());
client.setRequest(new String[] { REQUEST });
client.connect();
@@ -110,6 +111,11 @@ public class TestStandardContext extends
}
private static final class Bug46243Client extends SimpleHttpClient {
+
+ public Bug46243Client(int port) {
+ setPort(port);
+ }
+
@Override
public boolean isResponseBodyOK() {
// Don't care about the body in this test
@@ -442,7 +448,6 @@ public class TestStandardContext extends
@Test
public void testBug49711() {
Bug49711Client client = new Bug49711Client();
- client.setPort(getPort());
// Make sure non-multipart works properly
client.doRequest("/regular", false, false);
@@ -531,6 +536,8 @@ public class TestStandardContext extends
context.addServletMapping("/multipart", "multipart");
tomcat.start();
+ setPort(tomcat.getConnector().getLocalPort());
+
init = true;
}
Modified:
tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TestSwallowAbortedUploads.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TestSwallowAbortedUploads.java?rev=1207695&r1=1207694&r2=1207695&view=diff
==============================================================================
---
tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TestSwallowAbortedUploads.java
(original)
+++
tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TestSwallowAbortedUploads.java
Mon Nov 28 23:20:46 2011
@@ -51,7 +51,6 @@ public class TestSwallowAbortedUploads e
*/
public Exception doAbortedUploadTest(AbortedUploadClient client, boolean
limited,
boolean swallow) {
- client.setPort(getPort());
Exception ex = client.doRequest(limited, swallow);
if (log.isDebugEnabled()) {
log.debug("Response line: " + client.getResponseLine());
@@ -70,7 +69,6 @@ public class TestSwallowAbortedUploads e
*/
public Exception doAbortedPOSTTest(AbortedPOSTClient client, int status,
boolean swallow) {
- client.setPort(getPort());
Exception ex = client.doRequest(status, swallow);
if (log.isDebugEnabled()) {
log.debug("Response line: " + client.getResponseLine());
@@ -254,6 +252,7 @@ public class TestSwallowAbortedUploads e
context.setSwallowAbortedUploads(swallow);
tomcat.start();
+ setPort(tomcat.getConnector().getLocalPort());
init = true;
}
@@ -367,6 +366,8 @@ public class TestSwallowAbortedUploads e
tomcat.start();
+ setPort(tomcat.getConnector().getLocalPort());
+
init = true;
}
Modified:
tomcat/tc7.0.x/trunk/test/org/apache/catalina/filters/TestExpiresFilter.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/catalina/filters/TestExpiresFilter.java?rev=1207695&r1=1207694&r2=1207695&view=diff
==============================================================================
---
tomcat/tc7.0.x/trunk/test/org/apache/catalina/filters/TestExpiresFilter.java
(original)
+++
tomcat/tc7.0.x/trunk/test/org/apache/catalina/filters/TestExpiresFilter.java
Mon Nov 28 23:20:46 2011
@@ -432,7 +432,7 @@ public class TestExpiresFilter extends T
// TEST
HttpURLConnection httpURLConnection = (HttpURLConnection) new URL(
- "http://localhost:" + tomcat.getConnector().getPort() +
+ "http://localhost:" + tomcat.getConnector().getLocalPort()
+
"/test").openConnection();
// VALIDATE
Modified:
tomcat/tc7.0.x/trunk/test/org/apache/catalina/filters/TestRemoteIpFilter.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/catalina/filters/TestRemoteIpFilter.java?rev=1207695&r1=1207694&r2=1207695&view=diff
==============================================================================
---
tomcat/tc7.0.x/trunk/test/org/apache/catalina/filters/TestRemoteIpFilter.java
(original)
+++
tomcat/tc7.0.x/trunk/test/org/apache/catalina/filters/TestRemoteIpFilter.java
Mon Nov 28 23:20:46 2011
@@ -537,8 +537,9 @@ public class TestRemoteIpFilter extends
getTomcatInstance().start();
// TEST
- HttpURLConnection httpURLConnection = (HttpURLConnection) new
URL("http://localhost:" + tomcat.getConnector().getPort() + "/test")
- .openConnection();
+ HttpURLConnection httpURLConnection = (HttpURLConnection) new URL(
+ "http://localhost:" + tomcat.getConnector().getLocalPort() +
+ "/test").openConnection();
String expectedRemoteAddr = "my-remote-addr";
httpURLConnection.addRequestProperty("x-forwarded-for",
expectedRemoteAddr);
httpURLConnection.addRequestProperty("x-forwarded-proto", "https");
Modified:
tomcat/tc7.0.x/trunk/test/org/apache/catalina/mbeans/TestRegistration.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/catalina/mbeans/TestRegistration.java?rev=1207695&r1=1207694&r2=1207695&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/test/org/apache/catalina/mbeans/TestRegistration.java
(original)
+++ tomcat/tc7.0.x/trunk/test/org/apache/catalina/mbeans/TestRegistration.java
Mon Nov 28 23:20:46 2011
@@ -147,7 +147,7 @@ public class TestRegistration extends To
ArrayList<String> expected = new
ArrayList<String>(Arrays.asList(basicMBeanNames()));
expected.addAll(Arrays.asList(hostMBeanNames("localhost")));
expected.addAll(Arrays.asList(contextMBeanNames("localhost",
contextName)));
-
expected.addAll(Arrays.asList(connectorMBeanNames(Integer.toString(getPort()),
protocol)));
+ expected.addAll(Arrays.asList(connectorMBeanNames("auto-1",
protocol)));
expected.addAll(Arrays.asList(optionalMBeanNames("localhost")));
// Did we find all expected MBeans?
Modified:
tomcat/tc7.0.x/trunk/test/org/apache/catalina/servlets/TestDefaultServlet.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/catalina/servlets/TestDefaultServlet.java?rev=1207695&r1=1207694&r2=1207695&view=diff
==============================================================================
---
tomcat/tc7.0.x/trunk/test/org/apache/catalina/servlets/TestDefaultServlet.java
(original)
+++
tomcat/tc7.0.x/trunk/test/org/apache/catalina/servlets/TestDefaultServlet.java
Mon Nov 28 23:20:46 2011
@@ -198,8 +198,8 @@ public class TestDefaultServlet extends
tomcat.addWebapp(null, contextPath, appDir.getAbsolutePath());
tomcat.start();
- TestCustomErrorClient client = new TestCustomErrorClient();
- client.setPort(getPort());
+ TestCustomErrorClient client =
+ new
TestCustomErrorClient(tomcat.getConnector().getLocalPort());
client.reset();
client.setRequest(new String[] {
@@ -276,8 +276,8 @@ public class TestDefaultServlet extends
tomcat.addWebapp(null, contextPath, appDir.getAbsolutePath());
tomcat.start();
- TestCustomErrorClient client = new TestCustomErrorClient();
- client.setPort(getPort());
+ TestCustomErrorClient client =
+ new
TestCustomErrorClient(tomcat.getConnector().getLocalPort());
client.reset();
client.setRequest(new String[] {
@@ -294,6 +294,11 @@ public class TestDefaultServlet extends
}
private static class TestCustomErrorClient extends SimpleHttpClient {
+
+ public TestCustomErrorClient(int port) {
+ setPort(port);
+ }
+
@Override
public boolean isResponseBodyOK() {
return true;
Modified:
tomcat/tc7.0.x/trunk/test/org/apache/catalina/startup/SimpleHttpClient.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/catalina/startup/SimpleHttpClient.java?rev=1207695&r1=1207694&r2=1207695&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/test/org/apache/catalina/startup/SimpleHttpClient.java
(original)
+++ tomcat/tc7.0.x/trunk/test/org/apache/catalina/startup/SimpleHttpClient.java
Mon Nov 28 23:20:46 2011
@@ -70,7 +70,7 @@ public abstract class SimpleHttpClient {
private String responseBody;
private boolean useContentLength;
- public void setPort(int thePort) {
+ protected void setPort(int thePort) {
port = thePort;
}
Modified:
tomcat/tc7.0.x/trunk/test/org/apache/catalina/startup/TomcatBaseTest.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/catalina/startup/TomcatBaseTest.java?rev=1207695&r1=1207694&r2=1207695&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/test/org/apache/catalina/startup/TomcatBaseTest.java
(original)
+++ tomcat/tc7.0.x/trunk/test/org/apache/catalina/startup/TomcatBaseTest.java
Mon Nov 28 23:20:46 2011
@@ -56,7 +56,6 @@ import org.apache.tomcat.util.buf.ByteCh
public abstract class TomcatBaseTest extends LoggingBaseTest {
private Tomcat tomcat;
private boolean accessLogEnabled = false;
- private static int port = 8000;
public static final String TEMP_DIR = System.getProperty("java.io.tmpdir");
@@ -71,15 +70,7 @@ public abstract class TomcatBaseTest ext
* Sub-classes need to know port so they can connect
*/
public int getPort() {
- return port;
- }
-
- /**
- * Sub-classes may want to add connectors on a new port
- */
- public int getNextPort() {
- port++;
- return getPort();
+ return tomcat.getConnector().getLocalPort();
}
/**
@@ -106,9 +97,8 @@ public abstract class TomcatBaseTest ext
String protocol = getProtocol();
Connector connector = new Connector(protocol);
- // If each test is running on same port - they
- // may interfere with each other
- connector.setPort(getNextPort());
+ // Use random free port
+ connector.setPort(0);
// Mainly set to reduce timeouts during async tests
connector.setAttribute("connectionTimeout", "3000");
tomcat.getService().addConnector(connector);
Modified:
tomcat/tc7.0.x/trunk/test/org/apache/coyote/http11/TestAbstractHttp11Processor.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/coyote/http11/TestAbstractHttp11Processor.java?rev=1207695&r1=1207694&r2=1207695&view=diff
==============================================================================
---
tomcat/tc7.0.x/trunk/test/org/apache/coyote/http11/TestAbstractHttp11Processor.java
(original)
+++
tomcat/tc7.0.x/trunk/test/org/apache/coyote/http11/TestAbstractHttp11Processor.java
Mon Nov 28 23:20:46 2011
@@ -53,8 +53,7 @@ public class TestAbstractHttp11Processor
SimpleHttpClient.CRLF +
"test=data";
- Client client = new Client();
- client.setPort(getPort());
+ Client client = new Client(tomcat.getConnector().getLocalPort());
client.setRequest(new String[] {request});
client.connect();
@@ -82,8 +81,7 @@ public class TestAbstractHttp11Processor
SimpleHttpClient.CRLF +
"test=data";
- Client client = new Client();
- client.setPort(getPort());
+ Client client = new Client(tomcat.getConnector().getLocalPort());
client.setRequest(new String[] {request});
client.connect();
@@ -113,8 +111,7 @@ public class TestAbstractHttp11Processor
SimpleHttpClient.CRLF +
"test=data";
- Client client = new Client();
- client.setPort(getPort());
+ Client client = new Client(tomcat.getConnector().getLocalPort());
client.setRequest(new String[] {request});
client.connect();
@@ -144,8 +141,7 @@ public class TestAbstractHttp11Processor
SimpleHttpClient.CRLF +
"test=data";
- Client client = new Client();
- client.setPort(getPort());
+ Client client = new Client(tomcat.getConnector().getLocalPort());
client.setRequest(new String[] {request});
client.connect();
@@ -174,8 +170,7 @@ public class TestAbstractHttp11Processor
SimpleHttpClient.CRLF +
"test=data";
- Client client = new Client();
- client.setPort(getPort());
+ Client client = new Client(tomcat.getConnector().getLocalPort());
client.setRequest(new String[] {request});
client.connect();
@@ -204,8 +199,7 @@ public class TestAbstractHttp11Processor
"Host: any" + SimpleHttpClient.CRLF +
SimpleHttpClient.CRLF;
- final Client client = new Client();
- client.setPort(getPort());
+ final Client client = new Client(tomcat.getConnector().getLocalPort());
client.setRequest(new String[] {requestPart1, requestPart2});
client.setRequestPause(1000);
client.setUseContentLength(true);
@@ -246,6 +240,11 @@ public class TestAbstractHttp11Processor
}
private static final class Client extends SimpleHttpClient {
+
+ public Client(int port) {
+ setPort(port);
+ }
+
@Override
public boolean isResponseBodyOK() {
return getResponseBody().contains("test - data");
Modified:
tomcat/tc7.0.x/trunk/test/org/apache/coyote/http11/TestInternalInputBuffer.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/coyote/http11/TestInternalInputBuffer.java?rev=1207695&r1=1207694&r2=1207695&view=diff
==============================================================================
---
tomcat/tc7.0.x/trunk/test/org/apache/coyote/http11/TestInternalInputBuffer.java
(original)
+++
tomcat/tc7.0.x/trunk/test/org/apache/coyote/http11/TestInternalInputBuffer.java
Mon Nov 28 23:20:46 2011
@@ -45,7 +45,6 @@ public class TestInternalInputBuffer ext
public void testBug48839() {
Bug48839Client client = new Bug48839Client();
- client.setPort(getPort());
client.doRequest();
assertTrue(client.isResponse200());
@@ -68,6 +67,7 @@ public class TestInternalInputBuffer ext
try {
tomcat.start();
+ setPort(tomcat.getConnector().getLocalPort());
// Open connection
connect();
@@ -131,7 +131,6 @@ public class TestInternalInputBuffer ext
public void testBug51557NoColon() {
Bug51557Client client = new Bug51557Client("X-Bug51557NoColon");
- client.setPort(getPort());
client.doRequest();
assertTrue(client.isResponse200());
@@ -170,7 +169,6 @@ public class TestInternalInputBuffer ext
Bug51557Client client = new Bug51557Client("X-Bug=51557NoColon",
"foo" + SimpleHttpClient.CRLF + " bar");
- client.setPort(getPort());
client.doRequest();
assertTrue(client.isResponse200());
@@ -184,7 +182,6 @@ public class TestInternalInputBuffer ext
Bug51557Client client = new Bug51557Client("=X-Bug51557",
"invalid");
- client.setPort(getPort());
client.doRequest();
assertTrue(client.isResponse200());
@@ -198,7 +195,6 @@ public class TestInternalInputBuffer ext
Bug51557Client client = new Bug51557Client("X-Bug51557=",
"invalid");
- client.setPort(getPort());
client.doRequest();
assertTrue(client.isResponse200());
@@ -211,7 +207,6 @@ public class TestInternalInputBuffer ext
Bug51557Client client =
new Bug51557Client("X-Bug" + s + "51557", "invalid");
- client.setPort(getPort());
client.doRequest();
assertTrue(client.isResponse200());
assertEquals("abcd", client.getResponseBody());
@@ -247,6 +242,7 @@ public class TestInternalInputBuffer ext
try {
tomcat.start();
+ setPort(tomcat.getConnector().getLocalPort());
// Open connection
connect();
Modified:
tomcat/tc7.0.x/trunk/test/org/apache/coyote/http11/filters/TestChunkedInputFilter.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/coyote/http11/filters/TestChunkedInputFilter.java?rev=1207695&r1=1207694&r2=1207695&view=diff
==============================================================================
---
tomcat/tc7.0.x/trunk/test/org/apache/coyote/http11/filters/TestChunkedInputFilter.java
(original)
+++
tomcat/tc7.0.x/trunk/test/org/apache/coyote/http11/filters/TestChunkedInputFilter.java
Mon Nov 28 23:20:46 2011
@@ -68,8 +68,8 @@ public class TestChunkedInputFilter exte
"x-trailer: Test",
"TestTest0123456789abcdefghijABCDEFGHIJopqrstuvwxyz" + SimpleHttpClient.CRLF +
SimpleHttpClient.CRLF };
- TrailerClient client = new TrailerClient();
- client.setPort(getPort());
+ TrailerClient client =
+ new TrailerClient(tomcat.getConnector().getLocalPort());
client.setRequest(request);
client.connect();
@@ -109,8 +109,8 @@ public class TestChunkedInputFilter exte
"x-trailer: Test" + SimpleHttpClient.CRLF +
SimpleHttpClient.CRLF };
- TrailerClient client = new TrailerClient();
- client.setPort(getPort());
+ TrailerClient client =
+ new TrailerClient(tomcat.getConnector().getLocalPort());
client.setRequest(request);
client.connect();
@@ -149,8 +149,8 @@ public class TestChunkedInputFilter exte
"0" + SimpleHttpClient.CRLF +
SimpleHttpClient.CRLF;
- TrailerClient client = new TrailerClient();
- client.setPort(getPort());
+ TrailerClient client =
+ new TrailerClient(tomcat.getConnector().getLocalPort());
client.setRequest(new String[] {request});
client.connect();
@@ -193,6 +193,10 @@ public class TestChunkedInputFilter exte
private static class TrailerClient extends SimpleHttpClient {
+ public TrailerClient(int port) {
+ setPort(port);
+ }
+
@Override
public boolean isResponseBodyOK() {
return getResponseBody().contains("TestTestTest");
Modified:
tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/http/TestCookiesAllowEquals.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/http/TestCookiesAllowEquals.java?rev=1207695&r1=1207694&r2=1207695&view=diff
==============================================================================
---
tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/http/TestCookiesAllowEquals.java
(original)
+++
tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/http/TestCookiesAllowEquals.java
Mon Nov 28 23:20:46 2011
@@ -60,7 +60,7 @@ public class TestCookiesAllowEquals exte
tomcat.start();
// Open connection
- setPort(tomcat.getConnector().getPort());
+ setPort(tomcat.getConnector().getLocalPort());
connect();
String[] request = new String[1];
Modified:
tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/http/TestCookiesAllowHttpSeps.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/http/TestCookiesAllowHttpSeps.java?rev=1207695&r1=1207694&r2=1207695&view=diff
==============================================================================
---
tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/http/TestCookiesAllowHttpSeps.java
(original)
+++
tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/http/TestCookiesAllowHttpSeps.java
Mon Nov 28 23:20:46 2011
@@ -58,7 +58,7 @@ public class TestCookiesAllowHttpSeps ex
tomcat.start();
// Open connection
- setPort(tomcat.getConnector().getPort());
+ setPort(tomcat.getConnector().getLocalPort());
connect();
String[] request = new String[1];
Modified:
tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/http/TestCookiesAllowNameOnly.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/http/TestCookiesAllowNameOnly.java?rev=1207695&r1=1207694&r2=1207695&view=diff
==============================================================================
---
tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/http/TestCookiesAllowNameOnly.java
(original)
+++
tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/http/TestCookiesAllowNameOnly.java
Mon Nov 28 23:20:46 2011
@@ -59,7 +59,7 @@ public class TestCookiesAllowNameOnly ex
tomcat.start();
// Open connection
- setPort(tomcat.getConnector().getPort());
+ setPort(tomcat.getConnector().getLocalPort());
connect();
String[] request = new String[1];
Modified:
tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/http/TestCookiesDisallowEquals.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/http/TestCookiesDisallowEquals.java?rev=1207695&r1=1207694&r2=1207695&view=diff
==============================================================================
---
tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/http/TestCookiesDisallowEquals.java
(original)
+++
tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/http/TestCookiesDisallowEquals.java
Mon Nov 28 23:20:46 2011
@@ -55,7 +55,7 @@ public class TestCookiesDisallowEquals e
tomcat.start();
// Open connection
- setPort(tomcat.getConnector().getPort());
+ setPort(tomcat.getConnector().getLocalPort());
connect();
String[] request = new String[1];
Modified:
tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/net/TestXxxEndpoint.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/net/TestXxxEndpoint.java?rev=1207695&r1=1207694&r2=1207695&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/net/TestXxxEndpoint.java
(original)
+++ tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/net/TestXxxEndpoint.java
Mon Nov 28 23:20:46 2011
@@ -165,9 +165,9 @@ public class TestXxxEndpoint extends Tom
File appDir = new File(getBuildDirectory(), "webapps/examples");
tomcat.addWebapp(null, "/examples", appDir.getAbsolutePath());
- int port = getPort();
tomcat.start();
+ int port = getPort();
tomcat.getConnector().stop();
Exception e = null;
Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1207695&r1=1207694&r2=1207695&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Mon Nov 28 23:20:46 2011
@@ -68,6 +68,15 @@
</fix>
</changelog>
</subsection>
+ <subsection name = "Coyote">
+ <changelog>
+ <add>
+ <bug>52028</bug>: Add support for automatic binding to a free port by a
+ connector if the special value of zero is used for the port. This is
+ mainly useful in embedded and testing scenarios. (markt)
+ </add>
+ </changelog>
+ </subsection>
<subsection name="Web applications">
<changelog>
<update>
Modified: tomcat/tc7.0.x/trunk/webapps/docs/config/ajp.xml
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/config/ajp.xml?rev=1207695&r1=1207694&r2=1207695&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/webapps/docs/config/ajp.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/config/ajp.xml Mon Nov 28 23:20:46 2011
@@ -143,7 +143,10 @@
<p>The TCP port number on which this <strong>Connector</strong>
will create a server socket and await incoming connections. Your
operating system will allow only one server application to listen
- to a particular port number on a particular IP address.</p>
+ to a particular port number on a particular IP address. If the special
+ value of 0 (zero) is used, then Tomcat will select a free port at random
+ to use for this connector. This is typically only useful in embedded and
+ testing applications.</p>
</attribute>
<attribute name="protocol" required="false">
Modified: tomcat/tc7.0.x/trunk/webapps/docs/config/http.xml
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/config/http.xml?rev=1207695&r1=1207694&r2=1207695&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/webapps/docs/config/http.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/config/http.xml Mon Nov 28 23:20:46 2011
@@ -141,7 +141,10 @@
<p>The TCP port number on which this <strong>Connector</strong>
will create a server socket and await incoming connections. Your
operating system will allow only one server application to listen
- to a particular port number on a particular IP address.</p>
+ to a particular port number on a particular IP address. If the special
+ value of 0 (zero) is used, then Tomcat will select a free port at random
+ to use for this connector. This is typically only useful in embedded and
+ testing applications.</p>
</attribute>
<attribute name="protocol" required="false">
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]