Juergen Hoeller opened SPR-12039 and commented
Both JmsListenerAnnotationBeanPostProcessor and ScheduledAnnotationBeanPostProcessor traditionally implement ApplicationListener<ContextRefreshedEvent> to perform their registration tasks as late as possible. The new SmartInitializingSingleton mechanism in Spring 4.1 is a better fit since it kicks in right after the singleton pre-instantiation phase but before the phased lifecycle startup phase.
In the case of JmsListenerAnnotationBeanPostProcessor, this is particularly important since JmsListenerEndpointRegistry otherwise misses to propagate its phased start signal to the listener containers that it manages. This currently shows in the form that an explicit context.start() call is needed for annotated JMS endpoints.
Affects: 4.1 RC1
Issue Links:
Referenced from: commits 92c657e