diff --git a/src/main/java/com/alibaba/druid/stat/DruidStatManagerFacade.java b/src/main/java/com/alibaba/druid/stat/DruidStatManagerFacade.java index 4436366432..d5d064a4e7 100644 --- a/src/main/java/com/alibaba/druid/stat/DruidStatManagerFacade.java +++ b/src/main/java/com/alibaba/druid/stat/DruidStatManagerFacade.java @@ -250,6 +250,22 @@ public final class DruidStatManagerFacade { } else if (valueA instanceof List && valueB instanceof List) { List> mergedList = mergeNamedList((List) valueA, (List) valueB); newMap.put(key, mergedList); + } else if (valueA instanceof long[] && valueB instanceof long[]) { + long[] arrayA = (long[]) valueA; + long[] arrayB = (long[]) valueB; + + int len = arrayA.length >= arrayB.length ? arrayA.length : arrayB.length; + long[] sum = new long[len]; + + for (int i = 0; i < sum.length; ++i) { + if (i < arrayA.length) { + sum[i] += arrayA.length; + } + if (i < arrayB.length) { + sum[i] += arrayB.length; + } + } + newMap.put(key, sum); } else if (valueA instanceof String && valueB instanceof String) { newMap.put(key, valueA); } else {