From e3210e72d580ba48113501f83aa7547758c55d23 Mon Sep 17 00:00:00 2001 From: Moritz Halbritter Date: Tue, 7 Nov 2023 10:36:38 +0100 Subject: [PATCH] Polish "Report friendly error when failing to find AOT initializer" See gh-38188 --- .../org/springframework/boot/SpringApplication.java | 10 ++++------ .../springframework/boot/SpringApplicationTests.java | 4 ++-- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/SpringApplication.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/SpringApplication.java index c94427f052..1cbd342646 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/SpringApplication.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/SpringApplication.java @@ -437,12 +437,10 @@ public class SpringApplication { initializers.stream().filter(AotApplicationContextInitializer.class::isInstance).toList()); if (aotInitializers.isEmpty()) { String initializerClassName = this.mainApplicationClass.getName() + "__ApplicationContextInitializer"; - if (!ClassUtils.isPresent(initializerClassName, getClassLoader())) { - throw new IllegalArgumentException( - "You are starting application with AOT mode but not AOT-processed," - + " please build your application with AOT first." - + " Or remove system property 'spring.aot.enabled=true' to run as regular mode."); - } + Assert.state(ClassUtils.isPresent(initializerClassName, getClassLoader()), + "You are starting the application with AOT mode enabled but AOT processing hasn't happened. " + + "Please build your application with enabled AOT processing first, " + + "or remove the system property 'spring.aot.enabled' to run the application in regular mode"); aotInitializers.add(AotApplicationContextInitializer.forInitializerClasses(initializerClassName)); } initializers.removeAll(aotInitializers); 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 99bee2e963..1fff2bf294 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 @@ -1383,8 +1383,8 @@ class SpringApplicationTests { application.setMainApplicationClass(TestSpringApplication.class); System.setProperty(AotDetector.AOT_ENABLED, "true"); try { - assertThatIllegalArgumentException().isThrownBy(application::run) - .withMessageContaining(AotDetector.AOT_ENABLED); + assertThatIllegalStateException().isThrownBy(application::run) + .withMessageContaining("but AOT processing hasn't happened"); } finally { System.clearProperty(AotDetector.AOT_ENABLED);