test_class.file: util/src/test/java/com/google/cloud/hadoop/util/RetryDeterminerTest.java
test_class.identifier: RetryDeterminerTest
test_case.body: @Test
    public void serverRetriesCorrectly() throws IOException {
      assertThat(RetryDeterminer.SERVER_ERRORS.shouldRetry(new SocketTimeoutException())).isFalse();
      assertThat(RetryDeterminer.SERVER_ERRORS.shouldRetry(makeHttpException(300))).isFalse();
      assertThat(RetryDeterminer.SERVER_ERRORS.shouldRetry(makeHttpException(504))).isTrue();
      assertThat(RetryDeterminer.SERVER_ERRORS.shouldRetry(makeHttpException(500))).isTrue();
      assertThat(RetryDeterminer.SERVER_ERRORS.shouldRetry(makeHttpException(599))).isTrue();
      assertThat(RetryDeterminer.SERVER_ERRORS.shouldRetry(makeHttpException(499))).isFalse();
    }
test_case.class_method_signature: RetryDeterminerTest.serverRetriesCorrectly()
test_case.full_signature: @Test public void serverRetriesCorrectly()
test_case.identifier: serverRetriesCorrectly
test_case.invocations: isFalse assertThat shouldRetry isFalse assertThat shouldRetry makeHttpException isTrue assertThat shouldRetry makeHttpException isTrue assertThat shouldRetry makeHttpException isTrue assertThat shouldRetry makeHttpException isFalse assertThat shouldRetry makeHttpException
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void serverRetriesCorrectly()
focal_class.declarator: DEFAULT = new RetryDeterminer<Exception>() {
      @Override
      public boolean shouldRetry(Exception e) {
        if (e instanceof IOException) {
          return SOCKET_ERRORS.shouldRetry((IOException) e)
              || SERVER_ERRORS.shouldRetry((IOException) e);
        }
        return false;
      }
    }
focal_class.modifier: public static final
focal_class.original_string: public static final RetryDeterminer<Exception> DEFAULT = new RetryDeterminer<Exception>() {
      @Override
      public boolean shouldRetry(Exception e) {
        if (e instanceof IOException) {
          return SOCKET_ERRORS.shouldRetry((IOException) e)
              || SERVER_ERRORS.shouldRetry((IOException) e);
        }
        return false;
      }
    };
focal_class.type: RetryDeterminer<Exception>
focal_class.var_name: DEFAULT
focal_class.declarator: SOCKET_ERRORS =
        createSocketErrorRetryDeterminer(ApiErrorExtractor.INSTANCE)
focal_class.modifier: public static final
focal_class.original_string: public static final RetryDeterminer<IOException> SOCKET_ERRORS =
        createSocketErrorRetryDeterminer(ApiErrorExtractor.INSTANCE);
focal_class.type: RetryDeterminer<IOException>
focal_class.var_name: SOCKET_ERRORS
focal_class.declarator: SERVER_ERRORS =
        new RetryDeterminer<IOException>() {
      @Override
      public boolean shouldRetry(IOException e) {
        if (e instanceof HttpResponseException) {
          HttpResponseException httpException = (HttpResponseException) e;
          // TODO: Find what we should do for 500 codes that are not always transient.
          return httpException.getStatusCode() / 100 == 5;
        }
        return false;
      }
    }
focal_class.modifier: public static final
focal_class.original_string: public static final RetryDeterminer<IOException> SERVER_ERRORS =
        new RetryDeterminer<IOException>() {
      @Override
      public boolean shouldRetry(IOException e) {
        if (e instanceof HttpResponseException) {
          HttpResponseException httpException = (HttpResponseException) e;
          // TODO: Find what we should do for 500 codes that are not always transient.
          return httpException.getStatusCode() / 100 == 5;
        }
        return false;
      }
    };
focal_class.type: RetryDeterminer<IOException>
focal_class.var_name: SERVER_ERRORS
focal_class.declarator: RATE_LIMIT_ERRORS =
        createRateLimitedRetryDeterminer(ApiErrorExtractor.INSTANCE)
focal_class.modifier: public static final
focal_class.original_string: public static final RetryDeterminer<IOException> RATE_LIMIT_ERRORS =
        createRateLimitedRetryDeterminer(ApiErrorExtractor.INSTANCE);
focal_class.type: RetryDeterminer<IOException>
focal_class.var_name: RATE_LIMIT_ERRORS
focal_class.file: util/src/main/java/com/google/cloud/hadoop/util/RetryDeterminer.java
focal_class.identifier: RetryDeterminer
focal_class.class_method_signature: RetryDeterminer.shouldRetry(X e)
focal_class.full_signature: public abstract boolean shouldRetry(X e)
focal_class.identifier: shouldRetry
focal_class.modifiers: public abstract
focal_class.parameters: (X e)
focal_class.return: boolean
focal_class.signature: boolean shouldRetry(X e)
focal_class.class_method_signature: RetryDeterminer.createRateLimitedRetryDeterminer(
        final ApiErrorExtractor errorExtractor)
focal_class.full_signature: public static RetryDeterminer<IOException> createRateLimitedRetryDeterminer(
        final ApiErrorExtractor errorExtractor)
focal_class.identifier: createRateLimitedRetryDeterminer
focal_class.modifiers: public static
focal_class.parameters: (
        final ApiErrorExtractor errorExtractor)
focal_class.return: RetryDeterminer<IOException>
focal_class.signature: RetryDeterminer<IOException> createRateLimitedRetryDeterminer(
        final ApiErrorExtractor errorExtractor)
focal_class.class_method_signature: RetryDeterminer.createSocketErrorRetryDeterminer(
        final ApiErrorExtractor errorExtractor)
focal_class.full_signature: private static RetryDeterminer<IOException> createSocketErrorRetryDeterminer(
        final ApiErrorExtractor errorExtractor)
focal_class.identifier: createSocketErrorRetryDeterminer
focal_class.modifiers: private static
focal_class.parameters: (
        final ApiErrorExtractor errorExtractor)
focal_class.return: RetryDeterminer<IOException>
focal_class.signature: RetryDeterminer<IOException> createSocketErrorRetryDeterminer(
        final ApiErrorExtractor errorExtractor)
focal_method.body: public abstract boolean shouldRetry(X e);
focal_method.class_method_signature: RetryDeterminer.shouldRetry(X e)
focal_method.full_signature: public abstract boolean shouldRetry(X e)
focal_method.identifier: shouldRetry
focal_method.modifiers: public abstract
focal_method.parameters: (X e)
focal_method.return: boolean
focal_method.signature: boolean shouldRetry(X e)