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

Reply via email to