From 1cefeb2af0615992be5b2baf1a7df4106b3aea56 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 --- .../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 cd4636f4ff..850e4df4cf 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 @@ -199,7 +199,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); } } @@ -212,7 +214,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); } }