@@ -80,7 +80,7 @@ public final class AsynchronousMetricStorage<T extends PointData, U extends Exem
8080
8181 // deliberately not volatile because of performance concerns
8282 // - which means its eventually consistent
83- private AggregatorHolder aggregatorHolder ;
83+ private AggregatorHolder < T , U > aggregatorHolder ;
8484
8585 // Time information relative to recording of data in aggregatorHandles, set while calling
8686 // callbacks
@@ -105,7 +105,7 @@ private AsynchronousMetricStorage(
105105 this .reusablePointsPool = new ObjectPool <>(aggregator ::createReusablePoint );
106106 this .pointReleaser = (ignored , point ) -> reusablePointsPool .returnObject (point );
107107
108- this .aggregatorHolder = new AggregatorHolder (aggregator );
108+ this .aggregatorHolder = new AggregatorHolder <> (aggregator );
109109 this .handleBuilder = ignored -> aggregatorHolder .reusableHandlesPool .borrowObject ();
110110
111111 if (memoryMode == REUSABLE_DATA ) {
@@ -144,7 +144,7 @@ AsynchronousMetricStorage<T, U> create(
144144 }
145145
146146 void swapAggregator (Aggregator <T , U > aggregator ) {
147- this .aggregatorHolder = new AggregatorHolder (aggregator );
147+ this .aggregatorHolder = new AggregatorHolder <> (aggregator );
148148 }
149149
150150 /** Record callback measurement from {@link ObservableLongMeasurement}. */
@@ -202,7 +202,7 @@ public MetricData collect(
202202 InstrumentationScopeInfo instrumentationScopeInfo ,
203203 long startEpochNanos ,
204204 long epochNanos ) {
205- AggregatorHolder localAggregatorHolder = aggregatorHolder ;
205+ AggregatorHolder < T , U > localAggregatorHolder = aggregatorHolder ;
206206
207207 Collection <T > result =
208208 aggregationTemporality == AggregationTemporality .DELTA
@@ -218,7 +218,7 @@ public MetricData collect(
218218 }
219219
220220 private Collection <T > collectWithDeltaAggregationTemporality () {
221- AggregatorHolder localAggregatorHolder = aggregatorHolder ;
221+ AggregatorHolder < T , U > localAggregatorHolder = aggregatorHolder ;
222222
223223 Map <Attributes , T > currentPoints ;
224224 if (memoryMode == REUSABLE_DATA ) {
@@ -322,7 +322,7 @@ public boolean isEmpty() {
322322 return aggregatorHolder .aggregator == Aggregator .drop ();
323323 }
324324
325- private final class AggregatorHolder {
325+ private static final class AggregatorHolder < T extends PointData , U extends ExemplarData > {
326326 private final Aggregator <T , U > aggregator ;
327327 private final ObjectPool <AggregatorHandle <T , U >> reusableHandlesPool ;
328328 private final BiConsumer <Attributes , AggregatorHandle <T , U >> handleReleaser ;
0 commit comments