diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/SpringApplicationRunListeners.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/SpringApplicationRunListeners.java index 9850b4b585f..bb6081899c1 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/SpringApplicationRunListeners.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/SpringApplicationRunListeners.java @@ -111,7 +111,6 @@ class SpringApplicationRunListeners { StartupStep step = this.applicationStartup.start(stepName); this.listeners.forEach(listenerAction); stepAction.accept(step); - step.end(); } } diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/SpringApplicationTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/SpringApplicationTests.java index 0aab9fecfbc..844365685c2 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/SpringApplicationTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/SpringApplicationTests.java @@ -122,6 +122,7 @@ import static org.mockito.BDDMockito.given; import static org.mockito.BDDMockito.willThrow; import static org.mockito.Mockito.atLeastOnce; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.mockingDetails; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; @@ -1171,6 +1172,11 @@ class SpringApplicationTests { verify(applicationStartup).start("spring.boot.application.context-loaded"); verify(applicationStartup).start("spring.boot.application.started"); verify(applicationStartup).start("spring.boot.application.running"); + long startCount = mockingDetails(applicationStartup).getInvocations().stream() + .filter((invocation) -> invocation.getMethod().toString().contains("start(")).count(); + long endCount = mockingDetails(startupStep).getInvocations().stream() + .filter((invocation) -> invocation.getMethod().toString().contains("end(")).count(); + assertThat(startCount).isEqualTo(endCount); } private ArgumentMatcher isAvailabilityChangeEventWithState(