Github user zd-project commented on a diff in the pull request:
https://github.com/apache/storm/pull/2771#discussion_r204891653
--- Diff:
storm-server/src/main/java/org/apache/storm/metric/StormMetricsRegistry.java ---
@@ -88,19 +110,24 @@ public static void startMetricsReporters(Map<String,
Object> topoConf) {
}
}
- private static <T extends Metric> T register(final String name, T
metric) {
- T ret;
- try {
- ret = DEFAULT_REGISTRY.register(name, metric);
- } catch (IllegalArgumentException e) {
- // swallow IllegalArgumentException when the metric exists
already
- ret = (T) DEFAULT_REGISTRY.getMetrics().get(name);
- if (ret == null) {
- throw e;
- } else {
- LOG.warn("Metric {} has already been registered", name);
- }
+ public static String name(String prefix, String name) {
+ assert name != null;
+ return StringUtils.isEmpty(prefix) ? name : prefix + ':' + name;
+ }
+
+ public static String name(Class<?> klass, String names) {
+ return name(klass.getName(), names);
+ }
+
+ @Override
+ //This is more similar to super#getOrAdd than super#register
--- End diff --
Would you recommend switch back to try-catch block then?
---