Author: jlowe
Date: Mon Mar 17 14:58:14 2014
New Revision: 1578412
URL: http://svn.apache.org/r1578412
Log:
svn merge -c 1468739 FIXES: YARN-500. Fixed YARN webapps to not roll-over ports
when explicitly asked to use non-ephemeral ports. Contributed by Kenji Kikushima
Modified:
hadoop/common/branches/branch-0.23/hadoop-yarn-project/CHANGES.txt
hadoop/common/branches/branch-0.23/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/WebApps.java
hadoop/common/branches/branch-0.23/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/webapp/TestWebApp.java
Modified: hadoop/common/branches/branch-0.23/hadoop-yarn-project/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-yarn-project/CHANGES.txt?rev=1578412&r1=1578411&r2=1578412&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-yarn-project/CHANGES.txt
(original)
+++ hadoop/common/branches/branch-0.23/hadoop-yarn-project/CHANGES.txt Mon Mar
17 14:58:14 2014
@@ -27,6 +27,9 @@ Release 0.23.11 - UNRELEASED
YARN-1575. Public localizer crashes with "Localized unkown resource"
(jlowe)
+ YARN-500. Fixed YARN webapps to not roll-over ports when explicitly asked
+ to use non-ephemeral ports. (Kenji Kikushima via vinodkv)
+
Release 0.23.10 - 2013-12-09
INCOMPATIBLE CHANGES
Modified:
hadoop/common/branches/branch-0.23/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/WebApps.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/WebApps.java?rev=1578412&r1=1578411&r2=1578412&view=diff
==============================================================================
---
hadoop/common/branches/branch-0.23/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/WebApps.java
(original)
+++
hadoop/common/branches/branch-0.23/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/WebApps.java
Mon Mar 17 14:58:14 2014
@@ -97,13 +97,14 @@ public class WebApps {
public Builder<T> at(String bindAddress) {
String[] parts = StringUtils.split(bindAddress, ':');
if (parts.length == 2) {
- return at(parts[0], Integer.parseInt(parts[1]), true);
+ int port = Integer.parseInt(parts[1]);
+ return at(parts[0], port, port == 0);
}
return at(bindAddress, 0, true);
}
public Builder<T> at(int port) {
- return at("0.0.0.0", port, false);
+ return at("0.0.0.0", port, port == 0);
}
public Builder<T> at(String address, int port, boolean findPort) {
Modified:
hadoop/common/branches/branch-0.23/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/webapp/TestWebApp.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/webapp/TestWebApp.java?rev=1578412&r1=1578411&r2=1578412&view=diff
==============================================================================
---
hadoop/common/branches/branch-0.23/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/webapp/TestWebApp.java
(original)
+++
hadoop/common/branches/branch-0.23/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/webapp/TestWebApp.java
Mon Mar 17 14:58:14 2014
@@ -161,6 +161,30 @@ public class TestWebApp {
app.stop();
}
+ @Test(expected=org.apache.hadoop.yarn.webapp.WebAppException.class)
+ public void testCreateWithBindAddressNonZeroPort() {
+ WebApp app = WebApps.$for(this).at("0.0.0.0:50000").start();
+ int port = app.getListenerAddress().getPort();
+ assertEquals(50000, port);
+ // start another WebApp with same NonZero port
+ WebApp app2 = WebApps.$for(this).at("0.0.0.0:50000").start();
+ // An exception occurs (findPort disabled)
+ app.stop();
+ app2.stop();
+ }
+
+ @Test(expected=org.apache.hadoop.yarn.webapp.WebAppException.class)
+ public void testCreateWithNonZeroPort() {
+ WebApp app = WebApps.$for(this).at(50000).start();
+ int port = app.getListenerAddress().getPort();
+ assertEquals(50000, port);
+ // start another WebApp with same NonZero port
+ WebApp app2 = WebApps.$for(this).at(50000).start();
+ // An exception occurs (findPort disabled)
+ app.stop();
+ app2.stop();
+ }
+
@Test public void testServePaths() {
WebApp app = WebApps.$for("test", this).start();
assertEquals("/test", app.getRedirectPath());