@Override
    protected <AggInputT, AggOutputT> Aggregator<AggInputT, AggOutputT> createAggregatorInternal(
        String name, Combine.CombineFn<AggInputT, ?, AggOutputT> combiner) {
      Accumulator acc = getRuntimeContext().getAccumulator(name);
      if (acc != null) {
        AccumulatorHelper.compareAccumulatorTypes(
            name, SerializableFnAggregatorWrapper.class, acc.getClass());
        return (Aggregator<AggInputT, AggOutputT>) acc;
      }

      SerializableFnAggregatorWrapper<AggInputT, AggOutputT> accumulator =
          new SerializableFnAggregatorWrapper<>(combiner);
      getRuntimeContext().addAccumulator(name, accumulator);
      return accumulator;
    }