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");
}