From 8e14a5d640754a8c8f44592dbac6a1d85079b9b1 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Tue, 30 Dec 2014 10:01:58 +0100 Subject: [PATCH] Prevent NPE in AbstractApplicationEventMulticaster's non-caching code path Issue: SPR-12545 (cherry picked from commit 1cefeb2) --- .../event/AbstractApplicationEventMulticaster.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/spring-context/src/main/java/org/springframework/context/event/AbstractApplicationEventMulticaster.java b/spring-context/src/main/java/org/springframework/context/event/AbstractApplicationEventMulticaster.java index bbf9b28801e..b3ae2082934 100644 --- a/spring-context/src/main/java/org/springframework/context/event/AbstractApplicationEventMulticaster.java +++ b/spring-context/src/main/java/org/springframework/context/event/AbstractApplicationEventMulticaster.java @@ -200,7 +200,9 @@ public abstract class AbstractApplicationEventMulticaster } for (ApplicationListener listener : listeners) { if (supportsEvent(listener, event.getClass(), sourceType)) { - retriever.applicationListeners.add(listener); + if (retriever != null) { + retriever.applicationListeners.add(listener); + } allListeners.add(listener); } } @@ -213,7 +215,9 @@ public abstract class AbstractApplicationEventMulticaster ApplicationListener listener = beanFactory.getBean(listenerBeanName, ApplicationListener.class); if (!allListeners.contains(listener) && supportsEvent(listener, event.getClass(), sourceType)) { - retriever.applicationListenerBeans.add(listenerBeanName); + if (retriever != null) { + retriever.applicationListenerBeans.add(listenerBeanName); + } allListeners.add(listener); } }