Skip to content
This repository has been archived by the owner on Sep 26, 2023. It is now read-only.

fix: fix dynamic flow control setting checks #1347

Merged
merged 2 commits into from Apr 21, 2021
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -116,9 +116,10 @@ public DynamicFlowControlSettings build() {

private void verifyElementCountSettings(DynamicFlowControlSettings settings) {
boolean isEnabled =
settings.getInitialOutstandingElementCount() != null
|| settings.getMinOutstandingElementCount() != null
|| settings.getMaxOutstandingElementCount() != null;
settings.getLimitExceededBehavior() != LimitExceededBehavior.Ignore
igorbernstein2 marked this conversation as resolved.
Show resolved Hide resolved
&& (settings.getInitialOutstandingElementCount() != null
|| settings.getMinOutstandingElementCount() != null
|| settings.getMaxOutstandingElementCount() != null);
if (!isEnabled) {
return;
}
Expand All @@ -142,9 +143,10 @@ private void verifyElementCountSettings(DynamicFlowControlSettings settings) {

private void verifyRequestBytesSettings(DynamicFlowControlSettings settings) {
boolean isEnabled =
settings.getInitialOutstandingRequestBytes() != null
|| settings.getMinOutstandingRequestBytes() != null
|| settings.getMaxOutstandingRequestBytes() != null;
settings.getLimitExceededBehavior() != LimitExceededBehavior.Ignore
&& (settings.getInitialOutstandingRequestBytes() != null
|| settings.getMinOutstandingRequestBytes() != null
|| settings.getMaxOutstandingRequestBytes() != null);
if (!isEnabled) {
return;
}
Expand Down
Expand Up @@ -55,6 +55,19 @@ public void testEmptyBuilder() {
assertEquals(LimitExceededBehavior.Block, settings.getLimitExceededBehavior());
}

@Test
public void testSettingsIgnored() {
DynamicFlowControlSettings.Builder builder = DynamicFlowControlSettings.newBuilder();
// If behavior is ignore, build shouldn't throw exceptions even when only one of the bytes or
// element limits is set
builder
.setLimitExceededBehavior(LimitExceededBehavior.Ignore)
.setMaxOutstandingRequestBytes(1L);
builder.build();
builder.setMinOutstandingElementCount(1L);
builder.build();
}

@Test
public void testBuilder() {
DynamicFlowControlSettings.Builder builder =
Expand Down