Skip to content

Commit a19c976

Browse files
committed
Avoid NPE in ContextLoader when dealing with an untyped ApplicationContextInitializer
Issue: SPR-10449
1 parent c8b071c commit a19c976

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

spring-web/src/main/java/org/springframework/web/context/ContextLoader.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -470,7 +470,6 @@ protected Class<?> determineContextClass(ServletContext servletContext) {
470470
protected void customizeContext(ServletContext servletContext, ConfigurableWebApplicationContext applicationContext) {
471471
List<Class<ApplicationContextInitializer<ConfigurableApplicationContext>>> initializerClasses =
472472
determineContextInitializerClasses(servletContext);
473-
474473
if (initializerClasses.size() == 0) {
475474
// no ApplicationContextInitializers have been declared -> nothing to do
476475
return;
@@ -483,11 +482,13 @@ protected void customizeContext(ServletContext servletContext, ConfigurableWebAp
483482
for (Class<ApplicationContextInitializer<ConfigurableApplicationContext>> initializerClass : initializerClasses) {
484483
Class<?> initializerContextClass =
485484
GenericTypeResolver.resolveTypeArgument(initializerClass, ApplicationContextInitializer.class);
486-
Assert.isAssignable(initializerContextClass, contextClass, String.format(
487-
"Could not add context initializer [%s] as its generic parameter [%s] " +
488-
"is not assignable from the type of application context used by this " +
489-
"context loader [%s]: ", initializerClass.getName(), initializerContextClass.getName(),
490-
contextClass.getName()));
485+
if (initializerContextClass != null) {
486+
Assert.isAssignable(initializerContextClass, contextClass, String.format(
487+
"Could not add context initializer [%s] as its generic parameter [%s] " +
488+
"is not assignable from the type of application context used by this " +
489+
"context loader [%s]: ", initializerClass.getName(), initializerContextClass.getName(),
490+
contextClass.getName()));
491+
}
491492
initializerInstances.add(BeanUtils.instantiateClass(initializerClass));
492493
}
493494

0 commit comments

Comments
 (0)