MAPREDUCE-3999. Tracking link gives an error if the AppMaster hasn't started yet (Ravi Prakash via bobby)

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1309108 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Robert Joseph Evans 2012-04-03 19:37:46 +00:00
parent 0db8003e2e
commit 7b387f55c3
2 changed files with 22 additions and 2 deletions

View File

@ -234,6 +234,9 @@ Release 0.23.3 - UNRELEASED
MAPREDUCE-3988. mapreduce.job.local.dir doesn't point to a single directory
on a node. (Eric Payne via bobby)
MAPREDUCE-3999. Tracking link gives an error if the AppMaster hasn't
started yet (Ravi Prakash via bobby)
Release 0.23.2 - UNRELEASED
INCOMPATIBLE CHANGES

View File

@ -37,9 +37,9 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HostConfiguration;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.HostConfiguration;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.params.HttpClientParams;
@ -260,7 +260,24 @@ public class WebAppProxyServlet extends HttpServlet {
URI trackingUri = ProxyUriUtils.getUriFromAMUrl(
applicationReport.getOriginalTrackingUrl());
if(applicationReport.getOriginalTrackingUrl().equals("N/A")) {
notFound(resp, "The MRAppMaster died before writing anything.");
String message;
switch(applicationReport.getFinalApplicationStatus()) {
case FAILED:
case KILLED:
case SUCCEEDED:
message =
"The requested application exited before setting a tracking URL.";
break;
case UNDEFINED:
message = "The requested application does not appear to be running "
+"yet, and has not set a tracking URL.";
break;
default:
//This should never happen, but just to be safe
message = "The requested application has not set a tracking URL.";
break;
}
notFound(resp, message);
return;
}