code: @Override
    public float getProgress() {
      try {
        return Math.max(Math.min(1, progressProvider.get().getProgress()), 0);
      } catch (final Exception e) {
        // An Exception must be caught and logged here because YARN swallows the Exception and fails the job.
        LOG.log(Level.WARNING, "Cannot get the application progress. Will return 0.", e);
        return 0;
      }
    }
docs: RM Callback: Report application progress to RM.
  Progress is a floating point number between 0 and 1.
  @return a floating point number between 0 and 1.