code: public static long makeReasonable(long expectedTimeoutMillis, long bufferMillis) {
          checkArgument(expectedTimeoutMillis > 0,
                        "expectedTimeoutMillis: %s (expected: > 0)", expectedTimeoutMillis);
          checkArgument(bufferMillis >= 0,
                        "bufferMillis: %s (expected: > 0)", bufferMillis);
  
          final long timeout = Math.min(expectedTimeoutMillis, MAX_MILLIS);
          if (bufferMillis == 0) {
              return timeout;
          }
  
          if (timeout > MAX_MILLIS - bufferMillis) {
              return MAX_MILLIS;
          } else {
              return bufferMillis + timeout;
          }
      }
docs: Returns a reasonable timeout duration for a watch request.
  
  @param expectedTimeoutMillis timeout duration that a user wants to use, in milliseconds
  @param bufferMillis buffer duration which needs to be added, in milliseconds
  @return timeout duration in milliseconds, between the specified {@code bufferMillis} and
  the {@link #MAX_MILLIS}.