code: public static Result<Jwt> populateCCToken(final Jwt jwt) {
          boolean isInRenewWindow = jwt.getExpire() - System.currentTimeMillis() < jwt.getTokenRenewBeforeExpired();
          logger.trace("isInRenewWindow = " + isInRenewWindow);
          //if not in renew window, return the current jwt.
          if(!isInRenewWindow) { return Success.of(jwt); }
          //the same jwt shouldn't be renew at the same time. different jwt shouldn't affect each other's renew activity.
          synchronized (jwt) {
              //if token expired, try to renew synchronously
              if(jwt.getExpire() <= System.currentTimeMillis()) {
                  Result<Jwt> result = renewCCTokenSync(jwt);
                  if(logger.isTraceEnabled()) logger.trace("Check secondary token is done!");
                  return result;
              } else {
                  //otherwise renew token silently
                  renewCCTokenAsync(jwt);
                  if(logger.isTraceEnabled()) logger.trace("Check secondary token is done!");
                  return Success.of(jwt);
              }
          }
      }
docs: populate/renew jwt info to the give jwt object.
  based on the expire time of the jwt, to determine if need to renew jwt or not.
  to avoid modifying class member which will case thread-safe problem, move this method from Http2Client to this helper class.
  @param jwt the given jwt needs to renew or populate
  @return When success return Jwt; When fail return Status.