Skip to content

Commit 10d5c14

Browse files
authored
fix(#2068): polling health status does not include details (#2070)
1 parent c7c20f0 commit 10d5c14

File tree

2 files changed

+23
-1
lines changed
  • spring-boot-admin-server/src

2 files changed

+23
-1
lines changed

spring-boot-admin-server/src/main/java/de/codecentric/boot/admin/server/domain/values/StatusInfo.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,20 @@ public static Comparator<String> severity() {
124124

125125
@SuppressWarnings("unchecked")
126126
public static StatusInfo from(Map<String, ?> body) {
127-
return StatusInfo.valueOf((String) (body).get("status"), (Map<String, ?>) body.get("details"));
127+
Map<String, ?> details = Collections.emptyMap();
128+
129+
/*
130+
* Key "details" is present when accessing Spring Boot Actuator Health
131+
* using Accept-Header {@link org.springframework.boot.actuate.endpoint.ApiVersion#V2}.
132+
*/
133+
if (body.containsKey("details")) {
134+
details = (Map<String, ?>) body.get("details");
135+
}
136+
else if (body.containsKey("components")) {
137+
details = (Map<String, ?>) body.get("components");
138+
}
139+
140+
return StatusInfo.valueOf((String) body.get("status"), details);
128141
}
129142

130143
}

spring-boot-admin-server/src/test/java/de/codecentric/boot/admin/server/domain/values/StatusInfoTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,15 @@ public void from_map_should_return_same_result() {
7979
assertThat(StatusInfo.from(map)).isEqualTo(StatusInfo.ofUp(singletonMap("foo", "bar")));
8080
}
8181

82+
@Test
83+
public void when_first_level_key_is_components() {
84+
Map<String, Object> map = new HashMap<>();
85+
map.put("status", "UP");
86+
map.put("components", singletonMap("foo", "bar"));
87+
88+
assertThat(StatusInfo.from(map)).isEqualTo(StatusInfo.ofUp(singletonMap("foo", "bar")));
89+
}
90+
8291
@Test
8392
public void should_sort_by_status_order() {
8493
List<String> unordered = asList(STATUS_OUT_OF_SERVICE, STATUS_UNKNOWN, STATUS_OFFLINE, STATUS_DOWN, STATUS_UP,

0 commit comments

Comments
 (0)