Skip to content

Commit d56155b

Browse files
fix: if a flow control setting is not provided use zero (#292)
* fix: use default zero value if a flow control setting is not provided * fix lint issues
1 parent f54ed02 commit d56155b

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/StreamingSubscriberConnection.java

+8-2
Original file line numberDiff line numberDiff line change
@@ -216,8 +216,10 @@ private void initialize() {
216216
.setSubscription(subscription)
217217
.setStreamAckDeadlineSeconds(60)
218218
.setClientId(clientId)
219-
.setMaxOutstandingMessages(flowControlSettings.getMaxOutstandingElementCount())
220-
.setMaxOutstandingBytes(flowControlSettings.getMaxOutstandingRequestBytes())
219+
.setMaxOutstandingMessages(
220+
valueOrZero(flowControlSettings.getMaxOutstandingElementCount()))
221+
.setMaxOutstandingBytes(
222+
valueOrZero(flowControlSettings.getMaxOutstandingRequestBytes()))
221223
.build());
222224

223225
/**
@@ -281,6 +283,10 @@ public void run() {
281283
MoreExecutors.directExecutor());
282284
}
283285

286+
private Long valueOrZero(Long value) {
287+
return value != null ? value : 0;
288+
}
289+
284290
private boolean isAlive() {
285291
State state = state(); // Read the state only once.
286292
return state == State.RUNNING || state == State.STARTING;

google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/SubscriberTest.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import static org.junit.Assert.assertEquals;
2020
import static org.junit.Assert.assertTrue;
2121

22+
import com.google.api.gax.batching.FlowControlSettings;
2223
import com.google.api.gax.core.ExecutorProvider;
2324
import com.google.api.gax.core.FixedExecutorProvider;
2425
import com.google.api.gax.core.InstantiatingExecutorProvider;
@@ -238,6 +239,8 @@ private Builder getTestSubscriberBuilder(MessageReceiver receiver) {
238239
.setCredentialsProvider(NoCredentialsProvider.create())
239240
.setClock(fakeExecutor.getClock())
240241
.setParallelPullCount(1)
241-
.setMaxDurationPerAckExtension(Duration.ofSeconds(5));
242+
.setMaxDurationPerAckExtension(Duration.ofSeconds(5))
243+
.setFlowControlSettings(
244+
FlowControlSettings.newBuilder().setMaxOutstandingElementCount(1000L).build());
242245
}
243246
}

0 commit comments

Comments
 (0)