[cdi-dev] [JBoss JIRA] (CDI-583) Observer resolution doesn't	support Lambdas
    Antoine Sabot-Durand (JIRA) 
    issues at jboss.org
       
    Fri Feb 12 08:56:00 EST 2016
    
    
  
Antoine Sabot-Durand created CDI-583:
----------------------------------------
             Summary: Observer resolution doesn't support Lambdas
                 Key: CDI-583
                 URL: https://issues.jboss.org/browse/CDI-583
             Project: CDI Specification Issues
          Issue Type: Bug
          Components: Events
    Affects Versions: 2.0-EDR1, 1.2.Final
            Reporter: Antoine Sabot-Durand
As stated in various discussion on JDK8, lambda expressions don't allow to retrieve parameter types by reflection.
See:
http://jdk8-dev.openjdk.java.narkive.com/bSPiKxap/jdk-8-lambda-reflection-issues
As section 10.1 of the spec states:
bq. The event types of the event include all superclasses and interfaces of the runtime class of the event object.
In case of a lambda payload, observer resolution will fails when respecting the rule above since parameter type won't be retrieve from the lambda.
For instance the following code
{code}
    @Inject
    Event<Supplier<String>> stringSupplierEvent;
...
    Supplier<String> stringSupplier = () -> "Hello world";
    stringSupplierEvent.fire(stringSupplier);
{code}
will triggers an observer for {{Supplier}} but not an observer for {{Supplier<String>}}.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
    
    
More information about the cdi-dev
mailing list