Repository: hadoop Updated Branches: refs/heads/branch-2.8 01de843a3 -> 744d5edc8
HADOOP-13159. Fix potential NPE in Metrics2 source for DecayRpcScheduler. Contributed by Xiaoyu Yao. (cherry picked from commit 94784848456a92a6502f3a3c0074e44fba4b19c9) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/744d5edc Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/744d5edc Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/744d5edc Branch: refs/heads/branch-2.8 Commit: 744d5edc87686a0e70e6a78a67ee55723e1cf26a Parents: 01de843 Author: Xiaoyu Yao <x...@apache.org> Authored: Tue May 17 14:57:51 2016 -0700 Committer: Xiaoyu Yao <x...@apache.org> Committed: Tue May 17 15:44:28 2016 -0700 ---------------------------------------------------------------------- .../org/apache/hadoop/ipc/DecayRpcScheduler.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/744d5edc/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/DecayRpcScheduler.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/DecayRpcScheduler.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/DecayRpcScheduler.java index b39bda2..3443d03 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/DecayRpcScheduler.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/DecayRpcScheduler.java @@ -206,11 +206,6 @@ public class DecayRpcScheduler implements RpcScheduler, this.backOffResponseTimeThresholds = parseBackOffResponseTimeThreshold(ns, conf, numLevels); - // Setup delay timer - Timer timer = new Timer(); - DecayTask task = new DecayTask(this, timer); - timer.scheduleAtFixedRate(task, decayPeriodMillis, decayPeriodMillis); - // Setup response time metrics responseTimeTotalInCurrWindow = new AtomicLongArray(numLevels); responseTimeCountInCurrWindow = new AtomicLongArray(numLevels); @@ -223,6 +218,11 @@ public class DecayRpcScheduler implements RpcScheduler, Preconditions.checkArgument(topUsersCount > 0, "the number of top users for scheduler metrics must be at least 1"); + // Setup delay timer + Timer timer = new Timer(); + DecayTask task = new DecayTask(this, timer); + timer.scheduleAtFixedRate(task, decayPeriodMillis, decayPeriodMillis); + MetricsProxy prox = MetricsProxy.getInstance(ns, numLevels); prox.setDelegate(this); prox.registerMetrics2Source(ns); @@ -821,9 +821,10 @@ public class DecayRpcScheduler implements RpcScheduler, final int topCallerCount = 10; TopN topNCallers = getTopCallers(topCallerCount); Map<Object, Integer> decisions = scheduleCacheRef.get(); - for (int i=0; i < topNCallers.size(); i++) { + final int actualCallerCount = topNCallers.size(); + for (int i = 0; i < actualCallerCount; i++) { NameValuePair entry = topNCallers.poll(); - String topCaller = "Top." + (topCallerCount - i) + "." + + String topCaller = "Top." + (actualCallerCount - i) + "." + "Caller(" + entry.getName() + ")"; String topCallerVolume = topCaller + ".Volume"; String topCallerPriority = topCaller + ".Priority"; --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org