Skip to content

Commit 5af9f56

Browse files
tudormarcmp911de
authored andcommitted
Allow WriterOptionsBuilder to set ttl to 0.
Value 0 tells the Cassandra driver to disable the ttl. Original pull request: #1270. Closes #1262
1 parent 5866f00 commit 5af9f56

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/WriteOptions.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ public int hashCode() {
145145
* @author Mark Paluch
146146
* @author Lukasz Antoniak
147147
* @author Thomas Strauß
148+
* @author Tudor Marc
148149
* @since 1.5
149150
*/
150151
public static class WriteOptionsBuilder extends QueryOptionsBuilder {
@@ -288,7 +289,7 @@ public WriteOptionsBuilder ttl(int ttl) {
288289
public WriteOptionsBuilder ttl(Duration ttl) {
289290

290291
Assert.notNull(ttl, "TTL must not be null");
291-
Assert.isTrue(!ttl.isNegative() && !ttl.isZero(), "TTL must be greater than equal to zero");
292+
Assert.isTrue(!ttl.isNegative(), "TTL must be greater than equal to zero");
292293

293294
this.ttl = ttl;
294295

spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/cql/WriteOptionsUnitTests.java

+9-6
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
* @author Mark Paluch
3636
* @author Sam Lightfoot
3737
* @author Thomas Strauß
38+
* @author Tudor Marc
3839
*/
3940
class WriteOptionsUnitTests {
4041

@@ -107,16 +108,18 @@ void buildWriteOptionsMutate() {
107108
assertThat(writeOptions.getRoutingKey()).isEqualTo(ByteBuffer.allocate(1));
108109
}
109110

110-
@Test // GH-1248
111-
void buildWriteOptionsWithTtlDurationZero() {
112-
assertThatIllegalArgumentException().isThrownBy(() -> WriteOptions.builder().ttl(0));
113-
assertThatIllegalArgumentException().isThrownBy(() -> WriteOptions.builder().ttl(Duration.ZERO));
114-
}
115-
116111
@Test // GH-1248
117112
void buildWriteOptionsWithTtlNegativeDuration() {
118113
assertThatIllegalArgumentException().isThrownBy(() -> WriteOptions.builder().ttl(-1));
119114
assertThatIllegalArgumentException()
120115
.isThrownBy(() -> WriteOptions.builder().ttl(Duration.of(-1, ChronoUnit.MICROS)));
121116
}
117+
118+
@Test // GH-1262
119+
void buildZeroDurationTtlWriterOptions() {
120+
121+
WriteOptions writeOptions = WriteOptions.builder().ttl(0).build();
122+
123+
assertThat(writeOptions.getTtl()).isEqualTo(Duration.ZERO);
124+
}
122125
}

0 commit comments

Comments
 (0)