private Gauge getOrAddGauge()

in src/main/java/org/apache/sling/commons/metrics/internal/MetricsServiceImpl.java [174:189]


    private <T> Gauge<T> getOrAddGauge(String name, Supplier<T> supplier) {
        final Metric metric = metrics.get(name);
        if (metric instanceof Gauge<?>) {
            return (Gauge<T>) metric;
        } else {
            try {
                return registerGauge(name,supplier);
            } catch (IllegalArgumentException e) {
                final Metric added = metrics.get(name);
                if (added instanceof Gauge<?>) {
                    return (Gauge<T>) added;
                }
            }
        }
        throw new IllegalArgumentException(name + " is already used for a different type of metric");
    }