[cdi-dev] [JBoss JIRA] (CDI-331) Clarify Instance.iterator()

Jozef Hartinger (JIRA) jira-events at lists.jboss.org
Mon Mar 4 04:19:56 EST 2013

Jozef Hartinger created CDI-331:

             Summary: Clarify Instance.iterator()
                 Key: CDI-331
                 URL: https://issues.jboss.org/browse/CDI-331
             Project: CDI Specification Issues
          Issue Type: Clarification
          Components: Resolution
    Affects Versions: 1.1.PRD
            Reporter: Jozef Hartinger
            Assignee: Pete Muir
             Fix For: 1.1.FD

The specification currently says that:

The iterator() method must:
• Identify the set of beans that have the required type and required qualifiers and are eligible for injection into the class into
which the parent Instance was injected, according to the rules of typesafe resolution, as defined in Section 5.2.1.

The question that arises is whether the implementation should apply ambiguity resolution algorithm as defined in 5.2.2 or not.

This is explicitly required for get() but is not required for iterator(). This causes the following inconsistency:

Assume two classes Foo and Bar which both implement common interface Common. Bar is an enabled alternative.

Assume further the following 
@Inject @Any Instance<Common> instance
injection point.

It is clear that instance.get() returns Bar.

It is however not clear whether instance.iterator() iterates over:
a) Bar
b) Foo, Bar

and whether instance.isAmbiguous() returns:
a) true
b) false

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