/** * @param exs StorageException to test * @return true if exs is a retryable error, otherwise false */ @VisibleForTesting boolean isRetryable(final StorageException exs) { if (exs.isRetryable()) { return true; } for (int code : config.retryableHttpCodes()) { if (exs.getCode() == code) { return true; } } return false; }
assertEquals("message", exception.getMessage()); assertNull(exception.getReason()); assertTrue(exception.isRetryable()); assertEquals("message", exception.getMessage()); assertNull(exception.getReason()); assertTrue(exception.isRetryable()); assertEquals("message", exception.getMessage()); assertNull(exception.getReason()); assertTrue(exception.isRetryable()); assertEquals("message", exception.getMessage()); assertNull(exception.getReason()); assertTrue(exception.isRetryable()); assertEquals("message", exception.getMessage()); assertNull(exception.getReason()); assertTrue(exception.isRetryable()); assertEquals("message", exception.getMessage()); assertNull(exception.getReason()); assertTrue(exception.isRetryable()); assertEquals("message", exception.getMessage()); assertNull(exception.getReason()); assertFalse(exception.isRetryable()); assertNull(exception.getReason());
/** * @param exs StorageException to test * @return true if exs is a retryable error, otherwise false */ static boolean isRetryable(final StorageException exs) { // Yes one wouldn't necessarily think of 403 as retriable, // but see https://github.com/broadinstitute/gatk/issues/3735 // for reports of 403 being returned in cases when retrying works. return exs.isRetryable() || exs.getCode() == 403 || exs.getCode() == 500 || exs.getCode() == 502 || exs.getCode() == 503; }