From 9d2d9ae0ff15cb07cec787c33d88fccb915c748f Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Fri, 5 Dec 2025 16:30:00 +0100 Subject: [PATCH] Reinstate stopOrder test See gh-35964 --- .../ApplicationContextLifecycleTests.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/spring-context/src/test/java/org/springframework/context/support/ApplicationContextLifecycleTests.java b/spring-context/src/test/java/org/springframework/context/support/ApplicationContextLifecycleTests.java index 2482fd8c783..2d713efb917 100644 --- a/spring-context/src/test/java/org/springframework/context/support/ApplicationContextLifecycleTests.java +++ b/spring-context/src/test/java/org/springframework/context/support/ApplicationContextLifecycleTests.java @@ -98,6 +98,29 @@ class ApplicationContextLifecycleTests { context.close(); } + @Test + void stopOrder() { + AbstractApplicationContext context = new ClassPathXmlApplicationContext("lifecycleTests.xml", getClass()); + + context.start(); + context.stop(); + LifecycleTestBean bean1 = (LifecycleTestBean) context.getBean("bean1"); + LifecycleTestBean bean2 = (LifecycleTestBean) context.getBean("bean2"); + LifecycleTestBean bean3 = (LifecycleTestBean) context.getBean("bean3"); + LifecycleTestBean bean4 = (LifecycleTestBean) context.getBean("bean4"); + String notStoppedError = "bean was not stopped"; + assertThat(bean1.getStopOrder()).as(notStoppedError).isGreaterThan(0); + assertThat(bean2.getStopOrder()).as(notStoppedError).isGreaterThan(0); + assertThat(bean3.getStopOrder()).as(notStoppedError).isGreaterThan(0); + assertThat(bean4.getStopOrder()).as(notStoppedError).isGreaterThan(0); + String orderError = "dependent bean must stop before the bean it depends on"; + assertThat(bean2.getStopOrder()).as(orderError).isLessThan(bean1.getStopOrder()); + assertThat(bean3.getStopOrder()).as(orderError).isLessThan(bean2.getStopOrder()); + assertThat(bean4.getStopOrder()).as(orderError).isLessThan(bean2.getStopOrder()); + + context.close(); + } + @Test void autoStartup() { GenericApplicationContext context = new GenericApplicationContext();