Repository: hadoop
Updated Branches:
  refs/heads/trunk e565b5277 -> 6fc09beac


YARN-7434. Router getApps REST invocation fails with multiple RMs. Contributed 
by Inigo Goiri.


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/6fc09bea
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/6fc09bea
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/6fc09bea

Branch: refs/heads/trunk
Commit: 6fc09beac497b40928b6b0524d83ecf6e7abf932
Parents: e565b52
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:29:53 2017 -0700

----------------------------------------------------------------------
 .../webapp/FederationInterceptorREST.java       | 26 +++++++++++++-------
 1 file changed, 17 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/6fc09bea/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 6e67634..626d794 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
@@ -682,10 +682,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() {
@@ -744,24 +744,32 @@ 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) {
         public Map<String, String[]> getParameterMap() {
-          return 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