@SuppressWarnings("unchecked")
  private T parseResponse(GaePendingResult<T, R> request, HTTPResponse response)
      throws IOException, ApiException, InterruptedException {
    try {
      T result = parseResponseInternal(request, response);
      metrics.endRequest(null, response.getResponseCode(), retryCounter);
      return result;
    } catch (Exception e) {
      metrics.endRequest(e, response.getResponseCode(), retryCounter);
      throw e;
    }
  }
@param request HTTP request to execute.
@param client The client used to execute the request.
@param responseClass Model class to unmarshal JSON body content.
@param fieldNamingPolicy FieldNamingPolicy for unmarshaling JSON.
@param errorTimeOut Number of milliseconds to re-send erroring requests.
@param maxRetries Number of times allowed to re-send erroring requests.
src/main/java/com/google/maps/internal/GaePendingResult.java