瀏覽代碼

YARN-3624. ApplicationHistoryServer should not reverse the order of the
filters it gets. Contributed by Mit Desai

(cherry picked from commit d1b9b852442cb93b413eff8a137db6213e730d9c)
(cherry picked from commit bf3f08cc634c97fd31cc481b9fef3ccb2a53e5e9)

Xuan 10 年之前
父節點
當前提交
4c6e24528d

+ 2 - 2
hadoop-yarn-project/CHANGES.txt

@@ -82,8 +82,8 @@ Release 2.7.2 - UNRELEASED
     YARN-3975. WebAppProxyServlet should not redirect to RM page if AHS is
     YARN-3975. WebAppProxyServlet should not redirect to RM page if AHS is
     enabled (Mit Desai via jlowe)
     enabled (Mit Desai via jlowe)
 
 
-    YARN-3740. Fixed the typo in the configuration name:
-    APPLICATION_HISTORY_PREFIX_MAX_APPS. (Xuan Gong via zjshen)
+    YARN-3624. ApplicationHistoryServer should not reverse the order of the
+    filters it gets. (Mit Desai via xgong)
 
 
 Release 2.7.1 - 2015-07-06
 Release 2.7.1 - 2015-07-06
 
 

+ 8 - 5
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryServer.java

@@ -232,17 +232,20 @@ public class ApplicationHistoryServer extends CompositeService {
       if(conf.getBoolean(YarnConfiguration
       if(conf.getBoolean(YarnConfiguration
           .TIMELINE_SERVICE_HTTP_CROSS_ORIGIN_ENABLED, YarnConfiguration
           .TIMELINE_SERVICE_HTTP_CROSS_ORIGIN_ENABLED, YarnConfiguration
               .TIMELINE_SERVICE_HTTP_CROSS_ORIGIN_ENABLED_DEFAULT)) {
               .TIMELINE_SERVICE_HTTP_CROSS_ORIGIN_ENABLED_DEFAULT)) {
-        initializers = CrossOriginFilterInitializer.class.getName() + ","
-            + initializers;
+        if (initializers.length() != 0) {
+          initializers += ",";
+        }
+        initializers += CrossOriginFilterInitializer.class.getName();
         modifiedInitializers = true;
         modifiedInitializers = true;
       }
       }
     }
     }
 
 
     if (!initializers.contains(TimelineAuthenticationFilterInitializer.class
     if (!initializers.contains(TimelineAuthenticationFilterInitializer.class
       .getName())) {
       .getName())) {
-      initializers =
-          TimelineAuthenticationFilterInitializer.class.getName() + ","
-              + initializers;
+      if (initializers.length() != 0) {
+        initializers += ",";
+      }
+      initializers += TimelineAuthenticationFilterInitializer.class.getName();
       modifiedInitializers = true;
       modifiedInitializers = true;
     }
     }
 
 

+ 2 - 2
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/TestApplicationHistoryServer.java

@@ -138,8 +138,8 @@ public class TestApplicationHistoryServer {
     HashMap<String, String> driver = new HashMap<String, String>();
     HashMap<String, String> driver = new HashMap<String, String>();
     driver.put("", TimelineAuthenticationFilterInitializer.class.getName());
     driver.put("", TimelineAuthenticationFilterInitializer.class.getName());
     driver.put(StaticUserWebFilter.class.getName(),
     driver.put(StaticUserWebFilter.class.getName(),
-      TimelineAuthenticationFilterInitializer.class.getName() + ","
-          + StaticUserWebFilter.class.getName());
+        StaticUserWebFilter.class.getName() + "," +
+            TimelineAuthenticationFilterInitializer.class.getName());
     driver.put(AuthenticationFilterInitializer.class.getName(),
     driver.put(AuthenticationFilterInitializer.class.getName(),
       TimelineAuthenticationFilterInitializer.class.getName());
       TimelineAuthenticationFilterInitializer.class.getName());
     driver.put(TimelineAuthenticationFilterInitializer.class.getName(),
     driver.put(TimelineAuthenticationFilterInitializer.class.getName(),