diff --git a/pom.xml b/pom.xml
index c3245aad49..b690317817 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.springframework.data
spring-data-mongodb-parent
- 4.5.0-SNAPSHOT
+ 4.5.x-GH-4844-SNAPSHOT
pom
Spring Data MongoDB
diff --git a/spring-data-mongodb-distribution/pom.xml b/spring-data-mongodb-distribution/pom.xml
index 58c63dfc97..973df584b5 100644
--- a/spring-data-mongodb-distribution/pom.xml
+++ b/spring-data-mongodb-distribution/pom.xml
@@ -15,7 +15,7 @@
org.springframework.data
spring-data-mongodb-parent
- 4.5.0-SNAPSHOT
+ 4.5.x-GH-4844-SNAPSHOT
../pom.xml
diff --git a/spring-data-mongodb/pom.xml b/spring-data-mongodb/pom.xml
index 98516a5ba9..e1cd46a21f 100644
--- a/spring-data-mongodb/pom.xml
+++ b/spring-data-mongodb/pom.xml
@@ -13,7 +13,7 @@
org.springframework.data
spring-data-mongodb-parent
- 4.5.0-SNAPSHOT
+ 4.5.x-GH-4844-SNAPSHOT
../pom.xml
diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/index/MongoPersistentEntityIndexResolver.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/index/MongoPersistentEntityIndexResolver.java
index 86c896e7ff..da8b2115f2 100644
--- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/index/MongoPersistentEntityIndexResolver.java
+++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/index/MongoPersistentEntityIndexResolver.java
@@ -564,7 +564,7 @@ protected IndexDefinitionHolder createIndexDefinition(String dotPath, String col
Duration timeout = computeIndexTimeout(index.expireAfter(),
() -> getEvaluationContextForProperty(persistentProperty.getOwner()));
- if (!timeout.isZero() && !timeout.isNegative()) {
+ if (!timeout.isNegative()) {
indexDefinition.expire(timeout);
}
}
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/MongoPersistentEntityIndexResolverUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/MongoPersistentEntityIndexResolverUnitTests.java
index 0cfb8bd09f..f284f697a1 100644
--- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/MongoPersistentEntityIndexResolverUnitTests.java
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/MongoPersistentEntityIndexResolverUnitTests.java
@@ -222,6 +222,15 @@ public void shouldResolveTimeoutFromString() {
assertThat(indexDefinitions.get(0).getIndexOptions()).containsEntry("expireAfterSeconds", 600L);
}
+ @Test // GH-4844
+ public void shouldResolveZeroTimeoutFromString() {
+
+ List indexDefinitions = prepareMappingContextAndResolveIndexForType(
+ WithExpireAfterZeroSecondsAsPlainString.class);
+
+ assertThat(indexDefinitions.get(0).getIndexOptions()).containsEntry("expireAfterSeconds", 0L);
+ }
+
@Test // DATAMONGO-2112
public void shouldResolveTimeoutFromIso8601String() {
@@ -383,6 +392,11 @@ class WithExpireAfterAsPlainString {
@Indexed(expireAfter = "10m") String withTimeout;
}
+ @Document
+ class WithExpireAfterZeroSecondsAsPlainString {
+ @Indexed(expireAfter = "0s") String withTimeout;
+ }
+
@Document
class WithIso8601Style {
@Indexed(expireAfter = "P1D") String withTimeout;