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?


---

Reply via email to