Skip to content

Commit 9343266

Browse files
committed
End StartupSteps only once in SpringApplicationRunListeners
Fixes gh-22776
1 parent e240c18 commit 9343266

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

spring-boot-project/spring-boot/src/main/java/org/springframework/boot/SpringApplicationRunListeners.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,6 @@ private void doWithListeners(String stepName, Consumer<SpringApplicationRunListe
111111
StartupStep step = this.applicationStartup.start(stepName);
112112
this.listeners.forEach(listenerAction);
113113
stepAction.accept(step);
114-
step.end();
115114
}
116115

117116
}

spring-boot-project/spring-boot/src/test/java/org/springframework/boot/SpringApplicationTests.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@
122122
import static org.mockito.BDDMockito.willThrow;
123123
import static org.mockito.Mockito.atLeastOnce;
124124
import static org.mockito.Mockito.mock;
125+
import static org.mockito.Mockito.mockingDetails;
125126
import static org.mockito.Mockito.never;
126127
import static org.mockito.Mockito.spy;
127128
import static org.mockito.Mockito.verify;
@@ -1171,6 +1172,11 @@ void customApplicationStartupPublishStartupSteps() {
11711172
verify(applicationStartup).start("spring.boot.application.context-loaded");
11721173
verify(applicationStartup).start("spring.boot.application.started");
11731174
verify(applicationStartup).start("spring.boot.application.running");
1175+
long startCount = mockingDetails(applicationStartup).getInvocations().stream()
1176+
.filter((invocation) -> invocation.getMethod().toString().contains("start(")).count();
1177+
long endCount = mockingDetails(startupStep).getInvocations().stream()
1178+
.filter((invocation) -> invocation.getMethod().toString().contains("end(")).count();
1179+
assertThat(startCount).isEqualTo(endCount);
11741180
}
11751181

11761182
private <S extends AvailabilityState> ArgumentMatcher<ApplicationEvent> isAvailabilityChangeEventWithState(

0 commit comments

Comments
 (0)