This is an automated email from the ASF dual-hosted git repository.
ethanli pushed a commit to branch 2.1.x-branch
in repository https://gitbox.apache.org/repos/asf/storm.git
The following commit(s) were added to refs/heads/2.1.x-branch by this push:
new 03af787 [STORM-3598] Fix UI visualization NullPointException
03af787 is described below
commit 03af7876f50cfb824e5925f64a40910dd81e485d
Author: Ethan Li <[email protected]>
AuthorDate: Wed Mar 11 11:38:14 2020 -0500
[STORM-3598] Fix UI visualization NullPointException
---
.../java/org/apache/storm/stats/StatsUtil.java | 24 ++++++++++++++--------
1 file changed, 16 insertions(+), 8 deletions(-)
diff --git a/storm-server/src/main/java/org/apache/storm/stats/StatsUtil.java
b/storm-server/src/main/java/org/apache/storm/stats/StatsUtil.java
index 05d4edd..15233f3 100644
--- a/storm-server/src/main/java/org/apache/storm/stats/StatsUtil.java
+++ b/storm-server/src/main/java/org/apache/storm/stats/StatsUtil.java
@@ -1819,7 +1819,7 @@ public class StatsUtil {
}
/**
- * this method merges 2 two-level-deep maps, which is different from
mergeWithSum, and we expect the two maps have the same keys.
+ * this method merges 2 two-level-deep maps.
*/
private static <K> Map<String, Map<K, List>> mergeWithAddPair(Map<String,
Map<K, List>> m1,
Map<String,
Map<K, List>> m2) {
@@ -1847,15 +1847,23 @@ public class StatsUtil {
for (K kk : mm1.keySet()) {
List seq1 = mm1.get(kk);
List seq2 = mm2.get(kk);
- List sums = new ArrayList();
- for (int i = 0; i < seq1.size(); i++) {
- if (seq1.get(i) instanceof Long) {
- sums.add(((Number) seq1.get(i)).longValue() +
((Number) seq2.get(i)).longValue());
- } else {
- sums.add(((Number) seq1.get(i)).doubleValue() +
((Number) seq2.get(i)).doubleValue());
+ if (seq1 == null && seq2 == null) {
+ continue;
+ } else if (seq1 == null) {
+ tmp.put(kk, seq2);
+ } else if (seq2 == null) {
+ tmp.put(kk, seq1);
+ } else {
+ List sums = new ArrayList();
+ for (int i = 0; i < seq1.size(); i++) {
+ if (seq1.get(i) instanceof Long) {
+ sums.add(((Number) seq1.get(i)).longValue() +
((Number) seq2.get(i)).longValue());
+ } else {
+ sums.add(((Number) seq1.get(i)).doubleValue()
+ ((Number) seq2.get(i)).doubleValue());
+ }
}
+ tmp.put(kk, sums);
}
- tmp.put(kk, sums);
}
ret.put(k, tmp);
}