Browse Source

SimpleApplicationEventMulticaster leniently handles ClassCastException

Issue: SPR-14109
pull/1027/head
Juergen Hoeller 9 years ago
parent
commit
13f889e914
  1. 12
      spring-context/src/main/java/org/springframework/context/event/SimpleApplicationEventMulticaster.java

12
spring-context/src/main/java/org/springframework/context/event/SimpleApplicationEventMulticaster.java

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2015 the original author or authors. * Copyright 2002-2016 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -18,6 +18,8 @@ package org.springframework.context.event;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.ApplicationEvent; import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener; import org.springframework.context.ApplicationListener;
@ -160,7 +162,13 @@ public class SimpleApplicationEventMulticaster extends AbstractApplicationEventM
} }
} }
else { else {
listener.onApplicationEvent(event); try {
listener.onApplicationEvent(event);
}
catch (ClassCastException ex) {
// Possibly a lambda-defined listener which we could not resolve the generic event type for
LogFactory.getLog(getClass()).debug("Non-matching event type for listener: " + listener, ex);
}
} }
} }

Loading…
Cancel
Save