code: public <T extends Watermark> T getActualHighWatermark(Class<T> watermarkClass) {
      return getActualHighWatermark(watermarkClass, GSON);
    }
docs: Get the actual high {@link Watermark}. If the {@code WorkUnitState} does not contain the actual high watermark
  (which may be caused by task failures), the low watermark in the corresponding {@link WorkUnit} will be returned.
  
  <p>A default {@link Gson} object will be used to deserialize the watermark.</p>
  
  @param watermarkClass the watermark class for this {@code WorkUnitState}.
  @return the actual high watermark in this {@code WorkUnitState}. null is returned if this {@code WorkUnitState}
  does not contain an actual high watermark, and the corresponding {@code WorkUnit} does not contain a low
  watermark.