diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mongo/PropertiesMongoConnectionDetails.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mongo/PropertiesMongoConnectionDetails.java index 56b4bc470d1..04436c717b5 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mongo/PropertiesMongoConnectionDetails.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mongo/PropertiesMongoConnectionDetails.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2023 the original author or authors. + * Copyright 2012-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,6 +23,8 @@ import java.util.List; import com.mongodb.ConnectionString; +import org.springframework.util.StringUtils; + /** * Adapts {@link MongoProperties} to {@link MongoConnectionDetails}. * @@ -90,7 +92,7 @@ public class PropertiesMongoConnectionDetails implements MongoConnectionDetails private List getOptions() { List options = new ArrayList<>(); - if (this.properties.getReplicaSetName() != null) { + if (StringUtils.hasText(this.properties.getReplicaSetName())) { options.add("replicaSet=" + this.properties.getReplicaSetName()); } if (this.properties.getUsername() != null && this.properties.getAuthenticationDatabase() != null) { diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mongo/PropertiesMongoConnectionDetailsTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mongo/PropertiesMongoConnectionDetailsTests.java index 6d73d9d7ba5..0b529d6e334 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mongo/PropertiesMongoConnectionDetailsTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mongo/PropertiesMongoConnectionDetailsTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2023 the original author or authors. + * Copyright 2012-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -104,6 +104,20 @@ class PropertiesMongoConnectionDetailsTests { assertThat(connectionString.getRequiredReplicaSetName()).isEqualTo("test"); } + @Test + void replicaSetCanBeNull() { + this.properties.setReplicaSetName(null); + ConnectionString connectionString = getConnectionString(); + assertThat(connectionString.getRequiredReplicaSetName()).isNull(); + } + + @Test + void replicaSetCanBeBlank() { + this.properties.setReplicaSetName(""); + ConnectionString connectionString = getConnectionString(); + assertThat(connectionString.getRequiredReplicaSetName()).isNull(); + } + @Test void whenAdditionalHostsAreConfiguredThenTheyAreIncludedInHostsOfConnectionString() { this.properties.setHost("mongo1.example.com");