fixing concurrent gauge interceptor decr call
diff --git a/geronimo-metrics-extensions/geronimo-metrics-extension-common/src/main/java/org/apache/geronimo/microprofile/metrics/extension/common/MicroprofileMetricsAdapter.java b/geronimo-metrics-extensions/geronimo-metrics-extension-common/src/main/java/org/apache/geronimo/microprofile/metrics/extension/common/MicroprofileMetricsAdapter.java
index 9dbbb64..a8e46e8 100644
--- a/geronimo-metrics-extensions/geronimo-metrics-extension-common/src/main/java/org/apache/geronimo/microprofile/metrics/extension/common/MicroprofileMetricsAdapter.java
+++ b/geronimo-metrics-extensions/geronimo-metrics-extension-common/src/main/java/org/apache/geronimo/microprofile/metrics/extension/common/MicroprofileMetricsAdapter.java
@@ -34,9 +34,14 @@
 
     public Consumer<Definition> registrer() {
         return def -> {
-            final Metadata metadata = new Metadata(def.getName(), def.getDisplayName(), def.getDescription(), GAUGE,
-                    def.getUnit());
-            metadata.setReusable(true);
+            final Metadata metadata = Metadata.builder()
+                .withName(def.getName())
+                .withDisplayName(def.getDisplayName())
+                .withDescription(def.getDescription())
+                .withType(GAUGE)
+                .withUnit(def.getUnit())
+                .reusable(true)
+                .build();
             try {
                 registry.register(metadata, (Gauge<Double>) () -> def.getEvaluator()
                                                                      .getAsDouble());
diff --git a/geronimo-metrics/src/main/java/org/apache/geronimo/microprofile/metrics/cdi/ConcurrentGaugeInterceptor.java b/geronimo-metrics/src/main/java/org/apache/geronimo/microprofile/metrics/cdi/ConcurrentGaugeInterceptor.java
index f87aed1..586d16c 100644
--- a/geronimo-metrics/src/main/java/org/apache/geronimo/microprofile/metrics/cdi/ConcurrentGaugeInterceptor.java
+++ b/geronimo-metrics/src/main/java/org/apache/geronimo/microprofile/metrics/cdi/ConcurrentGaugeInterceptor.java
@@ -76,9 +76,7 @@
         try {
             return context.proceed();
         } finally {
-            if (!counter.skipDecrement) {
-                counter.gauge.dec();
-            }
+            counter.gauge.dec();
         }
     }
 
@@ -106,13 +104,12 @@
                             .map(org.eclipse.microprofile.metrics.annotation.ConcurrentGauge::name)
                             .orElse(""));
 
-            final ConcurrentGauge counter = ConcurrentGauge.class.cast(registry.getMetrics().get(
+            final ConcurrentGauge gauge = ConcurrentGauge.class.cast(registry.getMetrics().get(
                     new MetricID(name, concurrentGauge == null ? new Tag[0] : extension.createTags(concurrentGauge.tags()))));
-            if (counter == null) {
+            if (gauge == null) {
                 throw new IllegalStateException("No counter with name [" + name + "] found in registry [" + registry + "]");
             }
-            meta = new Meta(counter, !ofNullable(concurrentGauge)
-                    .orElseGet(() -> type.getAnnotation(org.eclipse.microprofile.metrics.annotation.ConcurrentGauge.class)).absolute());
+            meta = new Meta(gauge);
             gauges.putIfAbsent(executable, meta);
         }
         return meta;
@@ -120,11 +117,9 @@
 
     private static final class Meta {
         private final ConcurrentGauge gauge;
-        private final boolean skipDecrement;
 
-        private Meta(final ConcurrentGauge gauge, final boolean skipDecrement) {
+        private Meta(final ConcurrentGauge gauge) {
             this.gauge = gauge;
-            this.skipDecrement = skipDecrement;
         }
     }
 }