Skip to content

Commit e4efe0b

Browse files
fix: Split retryable codes for streams, and retry RESOURCE_EXHAUSTED errors.
1 parent 36b472b commit e4efe0b

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

google-cloud-pubsublite/src/main/java/com/google/cloud/pubsublite/ErrorCodes.java

+7
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,16 @@ public final class ErrorCodes {
2525
ImmutableSet.of(
2626
Code.DEADLINE_EXCEEDED, Code.ABORTED, Code.INTERNAL, Code.UNAVAILABLE, Code.UNKNOWN);
2727

28+
public static final ImmutableSet<Code> STREAM_RETRYABLE_CODES =
29+
ImmutableSet.<Code>builder().addAll(RETRYABLE_CODES).add(Code.RESOURCE_EXHAUSTED).build();
30+
2831
public static boolean IsRetryable(Code code) {
2932
return RETRYABLE_CODES.contains(code);
3033
}
3134

35+
public static boolean IsRetryableForStreams(Code code) {
36+
return STREAM_RETRYABLE_CODES.contains(code);
37+
}
38+
3239
private ErrorCodes() {}
3340
}

google-cloud-pubsublite/src/main/java/com/google/cloud/pubsublite/internal/wire/RetryingConnectionImpl.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ public final void onError(Throwable t) {
153153
setPermanentError(t);
154154
return;
155155
}
156-
if (!ErrorCodes.IsRetryable(statusOr.get().getCode())) {
156+
if (!ErrorCodes.IsRetryableForStreams(statusOr.get().getCode())) {
157157
setPermanentError(statusOr.get().asRuntimeException());
158158
return;
159159
}

0 commit comments

Comments
 (0)