Author: ddas
Date: Mon Feb 23 11:45:44 2009
New Revision: 746968

URL: http://svn.apache.org/viewvc?rev=746968&view=rev
Log:
HADOOP-4744. Workaround for jetty6 returning -1 when getLocalPort is invoked on 
the connector. The workaround patch takes the most conservative approach of 
killing the server process whenever this is true. Contributed by Devaraj Das.

Modified:
    hadoop/core/trunk/CHANGES.txt
    hadoop/core/trunk/src/core/org/apache/hadoop/http/HttpServer.java

Modified: hadoop/core/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hadoop/core/trunk/CHANGES.txt?rev=746968&r1=746967&r2=746968&view=diff
==============================================================================
--- hadoop/core/trunk/CHANGES.txt (original)
+++ hadoop/core/trunk/CHANGES.txt Mon Feb 23 11:45:44 2009
@@ -857,6 +857,10 @@
     HADOOP-5142. Fix MapWritable#putAll to store key/value classes. 
     (Doğacan Güney via enis)
 
+    HADOOP-4744. Workaround for jetty6 returning -1 when getLocalPort is 
invoked on
+    the connector. The workaround patch takes the most conservative approach 
of 
+    killing the server process whenever this is true. (ddas)
+
 Release 0.19.1 - Unreleased
 
   IMPROVEMENTS

Modified: hadoop/core/trunk/src/core/org/apache/hadoop/http/HttpServer.java
URL: 
http://svn.apache.org/viewvc/hadoop/core/trunk/src/core/org/apache/hadoop/http/HttpServer.java?rev=746968&r1=746967&r2=746968&view=diff
==============================================================================
--- hadoop/core/trunk/src/core/org/apache/hadoop/http/HttpServer.java (original)
+++ hadoop/core/trunk/src/core/org/apache/hadoop/http/HttpServer.java Mon Feb 
23 11:45:44 2009
@@ -26,6 +26,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.nio.channels.ServerSocketChannel;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
@@ -340,7 +341,15 @@
    * @return the port
    */
   public int getPort() {
-    return webServer.getConnectors()[0].getLocalPort();
+    int port = webServer.getConnectors()[0].getLocalPort();
+    if (port < 0) {
+      LOG.warn("Exiting since getLocalPort returned " + port + 
+               " Open status of jetty connector is: " +
+      (((ServerSocketChannel)webServer.getConnectors()[0].getConnection()).
+                                                    isOpen()));
+      System.exit(-1);
+    }
+    return port;
   }
 
   /**


Reply via email to