diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/amqp/RabbitHealthIndicator.java b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/amqp/RabbitHealthIndicator.java index 608d30a309e..49477349fb1 100644 --- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/amqp/RabbitHealthIndicator.java +++ b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/amqp/RabbitHealthIndicator.java @@ -45,8 +45,10 @@ public class RabbitHealthIndicator extends AbstractHealthIndicator { } private String getVersion() { - return this.rabbitTemplate - .execute((channel) -> channel.getConnection().getServerProperties().get("version").toString()); + return this.rabbitTemplate.execute((channel) -> channel.getConnection() + .getServerProperties() + .getOrDefault("version", "unknown") + .toString()); } } diff --git a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/amqp/RabbitHealthIndicatorTests.java b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/amqp/RabbitHealthIndicatorTests.java index 08b05ae9f53..6321c633899 100644 --- a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/amqp/RabbitHealthIndicatorTests.java +++ b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/amqp/RabbitHealthIndicatorTests.java @@ -67,6 +67,17 @@ class RabbitHealthIndicatorTests { assertThat(health.getDetails()).containsEntry("version", "123"); } + @Test + void healthWhenVersionIsMissingShouldReturnUpWithUnknownVersion() { + givenTemplateExecutionWillInvokeCallback(); + Connection connection = mock(Connection.class); + given(this.channel.getConnection()).willReturn(connection); + given(connection.getServerProperties()).willReturn(Collections.emptyMap()); + Health health = new RabbitHealthIndicator(this.rabbitTemplate).health(); + assertThat(health.getStatus()).isEqualTo(Status.UP); + assertThat(health.getDetails()).containsEntry("version", "unknown"); + } + @Test void healthWhenConnectionFailsShouldReturnDown() { givenTemplateExecutionWillInvokeCallback();