Uploaded image for project: 'Spring Framework'
  1. Spring Framework
  2. SPR-10675

Inferring an ApplicationListener's event type from a lambda or method reference

    XMLWordPrintable

    Details

    • Type: New Feature
    • Status: Open
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: 4.0 M1
    • Fix Version/s: 5.x Backlog
    • Component/s: Core
    • Labels:
      None
    • Last commented by a User:
      true

      Description

      This works:

      @Service
      public class MyListener {
          @Bean
          public ApplicationListener<Event1> myListener$listener1() {
              return new ApplicationListener<Event1>() {
                  @Override
                  public void onApplicationEvent(Event1 event1) {
                      System.out.println("Received Event1.");
                  }
              };
          }
      
          @Bean
          public ApplicationListener<Event2> myListener$listener2() {
              return new ApplicationListener<Event2>() {
                  @Override
                  public void onApplicationEvent(Event2 event1) {
                      System.out.println("Received Event2.");
                  }
              };
          }
      }

      These two variations do not:

      @Service
      public class MyListener {
          @Bean
          public ApplicationListener<Event1> myListener$listener1() {
              return (Event1 e) -> {
                  System.out.println("Received Event1.");
              };
          }
      
          @Bean
          public ApplicationListener<Event2> myListener$listener2() {
              return (Event2 e) -> {
                  System.out.println("Received Event2.");
              };
          }
      }
      @Service
      public class MyListener {
          public void onEvent1(Event1 event1) {
              System.out.println("Received Event1.");
          }
      
          public void onEvent2(Event2 event2) {
              System.out.println("Received Event2.");
          }
      
          @Bean
          public ApplicationListener<Event1> myListener$listener1() {
              return this::onEvent1;
          }
      
          @Bean
          public ApplicationListener<Event2> myListener$listener2() {
              return this::onEvent2;
          }
      }

      With either of these last two, Spring never starts. The following output is logged:

      13:32:49.106 [RMI TCP Connection(3)-127.0.0.1]   INFO  org.springframework.web.context.ContextLoader org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:273): Root WebApplicationContext: initialization started
      13:32:49.109 [RMI TCP Connection(3)-127.0.0.1]   INFO  org.springframework.web.context.support.AnnotationConfigWebApplicationContext org.springframework.context.support.AbstractApplicationContext.prepareRefresh(AbstractApplicationContext.java:524): Refreshing Root WebApplicationContext: startup date [Sun Jun 23 13:32:49 CDT 2013]; root of context hierarchy
      13:32:49.215 [RMI TCP Connection(3)-127.0.0.1]   INFO  org.springframework.context.annotation.ClassPathBeanDefinitionScanner org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.registerDefaultFilters(ClassPathScanningCandidateComponentProvider.java:233): JSR-250 'javax.annotation.ManagedBean' found and supported for component scanning
      13:32:49.217 [RMI TCP Connection(3)-127.0.0.1]   INFO  org.springframework.context.annotation.ClassPathBeanDefinitionScanner org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.registerDefaultFilters(ClassPathScanningCandidateComponentProvider.java:241): JSR-330 'javax.inject.Named' annotation found and supported for component scanning
      13:32:49.218 [RMI TCP Connection(3)-127.0.0.1]   INFO  org.springframework.web.context.support.AnnotationConfigWebApplicationContext org.springframework.web.context.support.AnnotationConfigWebApplicationContext.loadBeanDefinitions(AnnotationConfigWebApplicationContext.java:210): Registering annotated classes: [class com.wrox.config.RootContextConfiguration]
      13:32:49.512 [RMI TCP Connection(3)-127.0.0.1]   INFO  org.springframework.context.annotation.ClassPathBeanDefinitionScanner org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.registerDefaultFilters(ClassPathScanningCandidateComponentProvider.java:233): JSR-250 'javax.annotation.ManagedBean' found and supported for component scanning
      13:32:49.512 [RMI TCP Connection(3)-127.0.0.1]   INFO  org.springframework.context.annotation.ClassPathBeanDefinitionScanner org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.registerDefaultFilters(ClassPathScanningCandidateComponentProvider.java:241): JSR-330 'javax.inject.Named' annotation found and supported for component scanning
      13:32:49.807 [RMI TCP Connection(3)-127.0.0.1]   INFO  org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.<init>(AutowiredAnnotationBeanPostProcessor.java:140): JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
      13:32:49.859 [RMI TCP Connection(3)-127.0.0.1]   INFO  com.wrox.config.RootContextConfiguration com.wrox.config.RootContextConfiguration.initialize(RootContextConfiguration.java:120): Setting up thread pool task scheduler with 20 threads.
      13:32:49.922 [RMI TCP Connection(3)-127.0.0.1]   INFO  org.springframework.web.context.support.AnnotationConfigWebApplicationContext org.springframework.context.support.AbstractApplicationContext$BeanPostProcessorChecker.postProcessAfterInitialization(AbstractApplicationContext.java:1445): Bean 'rootContextConfiguration' of type [class com.wrox.config.RootContextConfiguration$$EnhancerByCGLIB$$45668b0d] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
      13:32:49.930 [RMI TCP Connection(3)-127.0.0.1]   INFO  com.wrox.config.RootContextConfiguration com.wrox.config.RootContextConfiguration.getAsyncExecutor(RootContextConfiguration.java:106): Configuring asynchronous method executor org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler@6f83de8a.
      13:32:49.939 [RMI TCP Connection(3)-127.0.0.1]   INFO  org.springframework.web.context.support.AnnotationConfigWebApplicationContext org.springframework.context.support.AbstractApplicationContext$BeanPostProcessorChecker.postProcessAfterInitialization(AbstractApplicationContext.java:1445): Bean 'org.springframework.scheduling.annotation.ProxyAsyncConfiguration' of type [class org.springframework.scheduling.annotation.ProxyAsyncConfiguration$$EnhancerByCGLIB$$80f4fcd1] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
      13:32:49.994 [RMI TCP Connection(3)-127.0.0.1]   INFO  org.springframework.web.context.support.AnnotationConfigWebApplicationContext org.springframework.context.support.AbstractApplicationContext$BeanPostProcessorChecker.postProcessAfterInitialization(AbstractApplicationContext.java:1445): Bean 'org.springframework.scheduling.annotation.SchedulingConfiguration' of type [class org.springframework.scheduling.annotation.SchedulingConfiguration$$EnhancerByCGLIB$$b4ccf16b] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
      13:32:50.034 [RMI TCP Connection(3)-127.0.0.1]   INFO  org.springframework.web.context.support.AnnotationConfigWebApplicationContext org.springframework.context.support.AbstractApplicationContext$BeanPostProcessorChecker.postProcessAfterInitialization(AbstractApplicationContext.java:1445): Bean 'messageSource' of type [class org.springframework.context.support.ReloadableResourceBundleMessageSource] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
      13:32:50.175 [RMI TCP Connection(3)-127.0.0.1]   INFO  org.springframework.web.context.support.AnnotationConfigWebApplicationContext org.springframework.context.support.AbstractApplicationContext$BeanPostProcessorChecker.postProcessAfterInitialization(AbstractApplicationContext.java:1445): Bean 'localValidatorFactoryBean' of type [class org.springframework.validation.beanvalidation.LocalValidatorFactoryBean] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
      13:32:50.197 [RMI TCP Connection(3)-127.0.0.1]   INFO  org.springframework.beans.factory.support.DefaultListableBeanFactory org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:611): Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@75c729d4: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,rootContextConfiguration,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor,myListener,myListener$listener1,myListener$listener2,org.springframework.scheduling.annotation.ProxyAsyncConfiguration,org.springframework.context.annotation.internalAsyncAnnotationProcessor,org.springframework.scheduling.annotation.SchedulingConfiguration,org.springframework.context.annotation.internalScheduledAnnotationProcessor,messageSource,objectMapper,taskScheduler,localValidatorFactoryBean,methodValidationPostProcessor,jaxb2Marshaller]; root of factory hierarchy
      13:32:50.443 [RMI TCP Connection(3)-127.0.0.1]   INFO  org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler org.springframework.scheduling.concurrent.ExecutorConfigurationSupport.initialize(ExecutorConfigurationSupport.java:161): Initializing ExecutorService  'taskScheduler'
      13:32:50.462 [RMI TCP Connection(3)-127.0.0.1]   INFO  org.springframework.oxm.jaxb.Jaxb2Marshaller org.springframework.oxm.jaxb.Jaxb2Marshaller.createJaxbContextFromPackages(Jaxb2Marshaller.java:484): Creating JAXBContext by scanning packages [com.wrox.site]
      13:32:50.542 [RMI TCP Connection(3)-127.0.0.1]   ERROR org.springframework.web.context.ContextLoader org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:319): Context initialization failed
      java.lang.ClassCastException: org.springframework.context.event.ContextRefreshedEvent cannot be cast to com.wrox.site.Event1
      	at com.wrox.site.MyListener$$Lambda$3.onApplicationEvent(Unknown Source) ~[MyListener.class:?]
      	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:98) ~[spring-context-4.0.0.M1.jar:4.0.0.M1]
      	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:344) ~[spring-context-4.0.0.M1.jar:4.0.0.M1]
      	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:948) ~[spring-context-4.0.0.M1.jar:4.0.0.M1]
      	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:496) ~[spring-context-4.0.0.M1.jar:4.0.0.M1]
      	at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:389) ~[spring-web-4.0.0.M1.jar:4.0.0.M1]
      	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:294) [spring-web-4.0.0.M1.jar:4.0.0.M1]
      	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106) [spring-web-4.0.0.M1.jar:4.0.0.M1]
      	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4765) [catalina.jar:8.0.0-dev]
      	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5210) [catalina.jar:8.0.0-dev]
      	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [catalina.jar:8.0.0-dev]
      	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726) [catalina.jar:8.0.0-dev]
      	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:702) [catalina.jar:8.0.0-dev]
      	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:698) [catalina.jar:8.0.0-dev]
      	at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1491) [catalina.jar:8.0.0-dev]
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0-ea]
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.8.0-ea]
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0-ea]
      	at java.lang.reflect.Method.invoke(Method.java:491) ~[?:1.8.0-ea]
      	at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300) [tomcat-coyote.jar:8.0.0-dev]
      	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) [?:1.8.0-ea]
      	at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:792) [?:1.8.0-ea]
      	at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:468) [catalina.jar:8.0.0-dev]
      	at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:415) [catalina.jar:8.0.0-dev]
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0-ea]
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.8.0-ea]
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0-ea]
      	at java.lang.reflect.Method.invoke(Method.java:491) ~[?:1.8.0-ea]
      	at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300) [tomcat-coyote.jar:8.0.0-dev]
      	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) [?:1.8.0-ea]
      	at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:792) [?:1.8.0-ea]
      	at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1465) [?:1.8.0-ea]
      	at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:75) [?:1.8.0-ea]
      	at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1306) [?:1.8.0-ea]
      	at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1398) [?:1.8.0-ea]
      	at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:827) [?:1.8.0-ea]
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0-ea]
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.8.0-ea]
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0-ea]
      	at java.lang.reflect.Method.invoke(Method.java:491) ~[?:1.8.0-ea]
      	at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322) [?:1.8.0-ea]
      	at sun.rmi.transport.Transport$1.run(Transport.java:177) [?:1.8.0-ea]
      	at sun.rmi.transport.Transport$1.run(Transport.java:174) [?:1.8.0-ea]
      	at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0-ea]
      	at sun.rmi.transport.Transport.serviceCall(Transport.java:173) [?:1.8.0-ea]
      	at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556) [?:1.8.0-ea]
      	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811) [?:1.8.0-ea]
      	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670) [?:1.8.0-ea]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [?:1.8.0-ea]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [?:1.8.0-ea]
      	at java.lang.Thread.run(Thread.java:724) [?:1.8.0-ea]
      13:32:50.563 [RMI TCP Connection(3)-127.0.0.1]   INFO  org.springframework.web.context.support.AnnotationConfigWebApplicationContext org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1045): Closing Root WebApplicationContext: startup date [Sun Jun 23 13:32:49 CDT 2013]; root of context hierarchy
      13:32:50.570 [RMI TCP Connection(3)-127.0.0.1]   WARN  org.springframework.web.context.support.AnnotationConfigWebApplicationContext org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1055): Exception thrown from ApplicationListener handling ContextClosedEvent
      java.lang.ClassCastException: org.springframework.context.event.ContextClosedEvent cannot be cast to com.wrox.site.Event1
      	at com.wrox.site.MyListener$$Lambda$3.onApplicationEvent(Unknown Source) ~[MyListener.class:?]
      	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:98) ~[spring-context-4.0.0.M1.jar:4.0.0.M1]
      	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:344) ~[spring-context-4.0.0.M1.jar:4.0.0.M1]
      	at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1052) [spring-context-4.0.0.M1.jar:4.0.0.M1]
      	at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1013) [spring-context-4.0.0.M1.jar:4.0.0.M1]
      	at org.springframework.web.context.ContextLoader.closeWebApplicationContext(ContextLoader.java:559) [spring-web-4.0.0.M1.jar:4.0.0.M1]
      	at org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:115) [spring-web-4.0.0.M1.jar:4.0.0.M1]
      	at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4805) [catalina.jar:8.0.0-dev]
      	at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5414) [catalina.jar:8.0.0-dev]
      	at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232) [catalina.jar:8.0.0-dev]
      	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:160) [catalina.jar:8.0.0-dev]
      	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726) [catalina.jar:8.0.0-dev]
      	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:702) [catalina.jar:8.0.0-dev]
      	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:698) [catalina.jar:8.0.0-dev]
      	at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1491) [catalina.jar:8.0.0-dev]
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0-ea]
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.8.0-ea]
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0-ea]
      	at java.lang.reflect.Method.invoke(Method.java:491) ~[?:1.8.0-ea]
      	at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300) [tomcat-coyote.jar:8.0.0-dev]
      	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) [?:1.8.0-ea]
      	at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:792) [?:1.8.0-ea]
      	at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:468) [catalina.jar:8.0.0-dev]
      	at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:415) [catalina.jar:8.0.0-dev]
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0-ea]
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.8.0-ea]
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0-ea]
      	at java.lang.reflect.Method.invoke(Method.java:491) ~[?:1.8.0-ea]
      	at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300) [tomcat-coyote.jar:8.0.0-dev]
      	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) [?:1.8.0-ea]
      	at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:792) [?:1.8.0-ea]
      	at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1465) [?:1.8.0-ea]
      	at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:75) [?:1.8.0-ea]
      	at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1306) [?:1.8.0-ea]
      	at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1398) [?:1.8.0-ea]
      	at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:827) [?:1.8.0-ea]
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0-ea]
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.8.0-ea]
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0-ea]
      	at java.lang.reflect.Method.invoke(Method.java:491) ~[?:1.8.0-ea]
      	at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322) [?:1.8.0-ea]
      	at sun.rmi.transport.Transport$1.run(Transport.java:177) [?:1.8.0-ea]
      	at sun.rmi.transport.Transport$1.run(Transport.java:174) [?:1.8.0-ea]
      	at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0-ea]
      	at sun.rmi.transport.Transport.serviceCall(Transport.java:173) [?:1.8.0-ea]
      	at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556) [?:1.8.0-ea]
      	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811) [?:1.8.0-ea]
      	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670) [?:1.8.0-ea]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [?:1.8.0-ea]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [?:1.8.0-ea]
      	at java.lang.Thread.run(Thread.java:724) [?:1.8.0-ea]
      13:32:50.573 [RMI TCP Connection(3)-127.0.0.1]   INFO  org.springframework.beans.factory.support.DefaultListableBeanFactory org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:452): Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@75c729d4: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,rootContextConfiguration,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor,myListener,myListener$listener1,myListener$listener2,org.springframework.scheduling.annotation.ProxyAsyncConfiguration,org.springframework.context.annotation.internalAsyncAnnotationProcessor,org.springframework.scheduling.annotation.SchedulingConfiguration,org.springframework.context.annotation.internalScheduledAnnotationProcessor,messageSource,objectMapper,taskScheduler,localValidatorFactoryBean,methodValidationPostProcessor,jaxb2Marshaller]; root of factory hierarchy
      13:32:50.573 [RMI TCP Connection(3)-127.0.0.1]   INFO  org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler org.springframework.scheduling.concurrent.ExecutorConfigurationSupport.shutdown(ExecutorConfigurationSupport.java:199): Shutting down ExecutorService 'taskScheduler'

      It seems to me that this should work. Perhaps a tweak to the listener registry to detect the method argument type from lambdas and references, too, instead of just regular and anonymous classes.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              juergen.hoeller Juergen Hoeller
              Reporter:
              guitarking117 Nick Williams
              Last updater:
              Spring Issues
              Votes:
              2 Vote for this issue
              Watchers:
              8 Start watching this issue

                Dates

                Created:
                Updated:
                Days since last comment:
                2 years, 1 week, 1 day ago