Repository: hadoop Updated Branches: refs/heads/branch-2 931987f47 -> 2d8d420f2
YARN-7434. Router getApps REST invocation fails with multiple RMs. Contributed by Inigo Goiri. (cherry picked from commit 6e2259264ad9525eeec2a14055d53236711659d7) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/2d8d420f Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/2d8d420f Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/2d8d420f Branch: refs/heads/branch-2 Commit: 2d8d420f26ef897b19f89139fcd1238283b36de1 Parents: 931987f Author: Inigo Goiri <inigo...@apache.org> Authored: Thu Nov 2 21:29:34 2017 -0700 Committer: Inigo Goiri <inigo...@apache.org> Committed: Thu Nov 2 21:34:34 2017 -0700 ---------------------------------------------------------------------- .../webapp/FederationInterceptorREST.java | 26 +++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/2d8d420f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/main/java/org/apache/hadoop/yarn/server/router/webapp/FederationInterceptorREST.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/main/java/org/apache/hadoop/yarn/server/router/webapp/FederationInterceptorREST.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/main/java/org/apache/hadoop/yarn/server/router/webapp/FederationInterceptorREST.java index 2860d10..a890ff3 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/main/java/org/apache/hadoop/yarn/server/router/webapp/FederationInterceptorREST.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/main/java/org/apache/hadoop/yarn/server/router/webapp/FederationInterceptorREST.java @@ -684,10 +684,10 @@ public class FederationInterceptorREST extends AbstractRESTRequestInterceptor { CompletionService<AppsInfo> compSvc = new ExecutorCompletionService<>(this.threadpool); + // HttpServletRequest does not work with ExecutorCompletionService. + // Create a duplicate hsr. + final HttpServletRequest hsrCopy = clone(hsr); for (final SubClusterInfo info : subClustersActive.values()) { - // HttpServletRequest does not work with ExecutorCompletionService. - // Create a duplicate hsr. - final HttpServletRequest hsrCopy = clone(hsr); compSvc.submit(new Callable<AppsInfo>() { @Override public AppsInfo call() { @@ -746,25 +746,33 @@ public class FederationInterceptorREST extends AbstractRESTRequestInterceptor { if (hsr == null) { return null; } + @SuppressWarnings("unchecked") + final Map<String, String[]> parameterMap = + (Map<String, String[]>) hsr.getParameterMap(); + final String pathInfo = hsr.getPathInfo(); + final String user = hsr.getRemoteUser(); + final Principal principal = hsr.getUserPrincipal(); + final String mediaType = + RouterWebServiceUtil.getMediaTypeFromHttpServletRequest( + hsr, AppsInfo.class); return new HttpServletRequestWrapper(hsr) { @SuppressWarnings("unchecked") public Map<String, String[]> getParameterMap() { - return (Map<String, String[]>) hsr.getParameterMap(); + return parameterMap; } public String getPathInfo() { - return hsr.getPathInfo(); + return pathInfo; } public String getRemoteUser() { - return hsr.getRemoteUser(); + return user; } public Principal getUserPrincipal() { - return hsr.getUserPrincipal(); + return principal; } public String getHeader(String value) { // we override only Accept if (value.equals(HttpHeaders.ACCEPT)) { - return RouterWebServiceUtil.getMediaTypeFromHttpServletRequest( - hsr, AppsInfo.class); + return mediaType; } return null; } --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org