From bf3f08cc634c97fd31cc481b9fef3ccb2a53e5e9 Mon Sep 17 00:00:00 2001 From: Xuan Date: Thu, 24 Sep 2015 15:01:17 -0700 Subject: [PATCH] YARN-3624. ApplicationHistoryServer should not reverse the order of the filters it gets. Contributed by Mit Desai (cherry picked from commit d1b9b852442cb93b413eff8a137db6213e730d9c) --- hadoop-yarn-project/CHANGES.txt | 3 +++ .../ApplicationHistoryServer.java | 13 ++++++++----- .../TestApplicationHistoryServer.java | 4 ++-- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index af3602343b9..a05e9349a36 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -939,6 +939,9 @@ Release 2.7.2 - UNRELEASED YARN-3975. WebAppProxyServlet should not redirect to RM page if AHS is enabled (Mit Desai via jlowe) + YARN-3624. ApplicationHistoryServer should not reverse the order of the + filters it gets. (Mit Desai via xgong) + Release 2.7.1 - 2015-07-06 INCOMPATIBLE CHANGES diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryServer.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryServer.java index 0ec27d75d20..dd571f8f22f 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryServer.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryServer.java @@ -242,17 +242,20 @@ private void startWebApp() { if(conf.getBoolean(YarnConfiguration .TIMELINE_SERVICE_HTTP_CROSS_ORIGIN_ENABLED, YarnConfiguration .TIMELINE_SERVICE_HTTP_CROSS_ORIGIN_ENABLED_DEFAULT)) { - initializers = CrossOriginFilterInitializer.class.getName() + "," - + initializers; + if (initializers.length() != 0) { + initializers += ","; + } + initializers += CrossOriginFilterInitializer.class.getName(); modifiedInitializers = true; } } if (!initializers.contains(TimelineAuthenticationFilterInitializer.class .getName())) { - initializers = - TimelineAuthenticationFilterInitializer.class.getName() + "," - + initializers; + if (initializers.length() != 0) { + initializers += ","; + } + initializers += TimelineAuthenticationFilterInitializer.class.getName(); modifiedInitializers = true; } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/TestApplicationHistoryServer.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/TestApplicationHistoryServer.java index a7e7daa1c58..01c309cd77a 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/TestApplicationHistoryServer.java +++ b/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 void testFilterOverrides() throws Exception { HashMap driver = new HashMap(); driver.put("", TimelineAuthenticationFilterInitializer.class.getName()); driver.put(StaticUserWebFilter.class.getName(), - TimelineAuthenticationFilterInitializer.class.getName() + "," - + StaticUserWebFilter.class.getName()); + StaticUserWebFilter.class.getName() + "," + + TimelineAuthenticationFilterInitializer.class.getName()); driver.put(AuthenticationFilterInitializer.class.getName(), TimelineAuthenticationFilterInitializer.class.getName()); driver.put(TimelineAuthenticationFilterInitializer.class.getName(),