Skip to content

Commit ed1aeed

Browse files
committed
Add input validation for duration parameters with 1-second minimum requirement
1 parent c851c22 commit ed1aeed

3 files changed

Lines changed: 1 addition & 48 deletions

File tree

sdk/src/main/java/com/amazonaws/lambda/durable/DurableConfig.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import com.amazonaws.lambda.durable.logging.LoggerConfig;
88
import com.amazonaws.lambda.durable.serde.JacksonSerDes;
99
import com.amazonaws.lambda.durable.serde.SerDes;
10-
import com.amazonaws.lambda.durable.validation.ParameterValidator;
1110
import java.time.Duration;
1211
import java.util.Objects;
1312
import java.util.concurrent.ExecutorService;
@@ -313,7 +312,7 @@ public Builder withLoggerConfig(LoggerConfig loggerConfig) {
313312
* @return This builder
314313
*/
315314
public Builder withPollingInterval(Duration duration) {
316-
ParameterValidator.validateOptionalDuration(duration, "Polling interval");
315+
// No validation - polling intervals can be less than 1 second (e.g., 200ms with backoff)
317316
this.pollingInterval = duration;
318317
return this;
319318
}

sdk/src/main/java/com/amazonaws/lambda/durable/InvokeConfig.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
package com.amazonaws.lambda.durable;
44

55
import com.amazonaws.lambda.durable.serde.SerDes;
6-
import com.amazonaws.lambda.durable.validation.ParameterValidator;
76
import java.time.Duration;
87

98
public class InvokeConfig {
@@ -63,7 +62,6 @@ public Builder tenantId(String tenantId) {
6362
}
6463

6564
public Builder timeout(Duration timeout) {
66-
ParameterValidator.validateOptionalDuration(timeout, "Invoke timeout");
6765
this.timeout = timeout;
6866
return this;
6967
}

sdk/src/test/java/com/amazonaws/lambda/durable/DurationValidationIntegrationTest.java

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -42,48 +42,4 @@ void callbackConfig_withNullTimeouts_shouldPass() {
4242
assertDoesNotThrow(() ->
4343
CallbackConfig.builder().timeout(null).heartbeatTimeout(null).build());
4444
}
45-
46-
@Test
47-
void invokeConfig_withInvalidTimeout_shouldThrow() {
48-
var exception = assertThrows(
49-
IllegalArgumentException.class,
50-
() -> InvokeConfig.builder().timeout(Duration.ofMillis(500)).build());
51-
52-
assertTrue(exception.getMessage().contains("Invoke timeout"));
53-
assertTrue(exception.getMessage().contains("at least 1 second"));
54-
}
55-
56-
@Test
57-
void invokeConfig_withValidTimeout_shouldPass() {
58-
assertDoesNotThrow(
59-
() -> InvokeConfig.builder().timeout(Duration.ofSeconds(30)).build());
60-
}
61-
62-
@Test
63-
void invokeConfig_withNullTimeout_shouldPass() {
64-
assertDoesNotThrow(() -> InvokeConfig.builder().timeout(null).build());
65-
}
66-
67-
@Test
68-
void durableConfig_withInvalidPollingInterval_shouldThrow() {
69-
var exception = assertThrows(IllegalArgumentException.class, () -> DurableConfig.builder()
70-
.withPollingInterval(Duration.ofMillis(500))
71-
.build());
72-
73-
assertTrue(exception.getMessage().contains("Polling interval"));
74-
assertTrue(exception.getMessage().contains("at least 1 second"));
75-
}
76-
77-
@Test
78-
void durableConfig_withValidPollingInterval_shouldPass() {
79-
assertDoesNotThrow(() -> DurableConfig.builder()
80-
.withPollingInterval(Duration.ofSeconds(2))
81-
.build());
82-
}
83-
84-
@Test
85-
void durableConfig_withNullPollingInterval_shouldPass() {
86-
assertDoesNotThrow(
87-
() -> DurableConfig.builder().withPollingInterval(null).build());
88-
}
8945
}

0 commit comments

Comments
 (0)