Closed
Description
Nazar Vishka opened SPR-13650 and commented
Simple example:
public interface Service{
@org.springframework.context.event.EventListener
void processEventA(EventA event);
void processEventB(EventB event);
}
@Service
public class ServiceImpl implements Service{
@Override
public void void processEventA(EventA event){
//do something
}
@Override
@org.springframework.context.event.EventListener
public void void processEventB(EventB event){
//do something
}
@org.springframework.context.event.EventListener
public void void processEventC(EventC event){
//do something
}
}
@Service
public class EventPublisher{
@Autowired
ApplicationEventPublisher eventPublisher;
public void publishEvents(){
eventPublisher.publishEvent(new EventA());
eventPublisher.publishEvent(new EventB());
eventPublisher.publishEvent(new EventC());
}
}
When I call EventPublisher.publishEvents() only one method in ServiceImpl is triggered: processEventA(EventA event). But I expected that all three methods will be triggered.
Affects: 4.2.2
Issue Links:
- Spring incorrectly interprets a bean to be a spring eventlistener [SPR-13538] #18114 Spring incorrectly interprets a bean to be a spring eventlistener
- Incorrect @JmsListener parameter matching when the listener is a JDK proxy [SPR-13576] #18153 Incorrect
@JmsListener
parameter matching when the listener is a JDK proxy - Scheduled method is not invoked via proxy [SPR-13914] #18488 Scheduled method is not invoked via proxy
- Consistent method selection for listeners and endpoint mappings [SPR-13654] #18230 Consistent method selection for listeners and endpoint mappings
- AbstractAutoProxyCreator.getCacheKey generate lots of String garbage [SPR-13655] #18231 AbstractAutoProxyCreator.getCacheKey generate lots of String garbage