[cdi-dev] [JBoss JIRA] (CDI-393) Type parameters should not be tested for assignability independently

Marko Lukša (JIRA) jira-events at lists.jboss.org
Fri Jul 19 14:52:26 EDT 2013


Marko Lukša created CDI-393:
-------------------------------

             Summary: Type parameters should not be tested for assignability independently
                 Key: CDI-393
                 URL: https://issues.jboss.org/browse/CDI-393
             Project: CDI Specification Issues
          Issue Type: Bug
          Components: Resolution
    Affects Versions: 1.1.PFD
            Reporter: Marko Lukša


Sadly, I've found yet another problem with section 5.2.4:

{code}
@Vetoed
class Pair<U, V> {
}

class SymmetricalPairProducer {
    @Produces
    public <T> Pair<T, T> produceSymmetricalPair(InjectionPoint ip) {
        return new Pair<T, T>();
    }
}

class Client {
    @Inject Pair<String, Integer> asymmetricalPair;
}
{code}

Even though the producer is only able to produce symmetrical pairs, CDI rules allow the symmetrical pair to be injected into the {{asymmetricalPair}} injection point:


- the required type is {{Pair<String, Integer>}}
- the bean type is {{Pair<T, T>}}
- both types are parameterized and have identical raw type and all parameters satisfy the rules:
-- the first required type parameter is an actual type ({{String}}), the first bean type parameter is a type variable ({{T}}) and the actual type is assignable to the upper bound of the type variable
-- the second required type parameter is also an actual type ({{Integer}}), the second bean type parameter is a type variable ({{T}}) and the actual type is assignable to the upper bound of the type variable.

It is clear that type parameters, when they contain type variables, should not be tested for assignability independently.



--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the cdi-dev mailing list