diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/webapp/JerseyTestBase.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/webapp/JerseyTestBase.java index 7a225a3999e..d537fa748f9 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/webapp/JerseyTestBase.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/webapp/JerseyTestBase.java @@ -19,9 +19,10 @@ package org.apache.hadoop.yarn.webapp; import java.io.IOException; +import java.util.Random; import org.apache.hadoop.net.ServerSocketUtil; -import org.junit.Before; + import com.sun.jersey.test.framework.JerseyTest; import com.sun.jersey.test.framework.WebAppDescriptor; @@ -30,9 +31,16 @@ public abstract class JerseyTestBase extends JerseyTest { super(appDescriptor); } - @Before - public void initializeJerseyPort() throws IOException { - int jerseyPort = ServerSocketUtil.getPort(9998, 10); - System.setProperty("jersey.test.port", Integer.toString(jerseyPort)); + @Override + protected int getPort(int port) { + Random rand = new Random(); + int jerseyPort = port + rand.nextInt(1000); + try { + jerseyPort = ServerSocketUtil.getPort(jerseyPort, 10); + } catch (IOException e) { + // Ignore exception even after 10 times free port is + // not received. + } + return super.getPort(jerseyPort); } }