Prevent NPE in AbstractApplicationEventMulticaster's non-caching code path

Issue: SPR-12545
(cherry picked from commit 1cefeb2)
This commit is contained in:
Juergen Hoeller
2014-12-30 10:08:42 +01:00
parent 230aa07fbb
commit 8e14a5d640
@@ -200,7 +200,9 @@ public abstract class AbstractApplicationEventMulticaster
} }
for (ApplicationListener<?> listener : listeners) { for (ApplicationListener<?> listener : listeners) {
if (supportsEvent(listener, event.getClass(), sourceType)) { if (supportsEvent(listener, event.getClass(), sourceType)) {
retriever.applicationListeners.add(listener); if (retriever != null) {
retriever.applicationListeners.add(listener);
}
allListeners.add(listener); allListeners.add(listener);
} }
} }
@@ -213,7 +215,9 @@ public abstract class AbstractApplicationEventMulticaster
ApplicationListener<?> listener = ApplicationListener<?> listener =
beanFactory.getBean(listenerBeanName, ApplicationListener.class); beanFactory.getBean(listenerBeanName, ApplicationListener.class);
if (!allListeners.contains(listener) && supportsEvent(listener, event.getClass(), sourceType)) { if (!allListeners.contains(listener) && supportsEvent(listener, event.getClass(), sourceType)) {
retriever.applicationListenerBeans.add(listenerBeanName); if (retriever != null) {
retriever.applicationListenerBeans.add(listenerBeanName);
}
allListeners.add(listener); allListeners.add(listener);
} }
} }