Self reference fallback in 4.3 is not meant to apply to collection elements [SPR-14965] #19532
Labels
in: core
Issues in core modules (aop, beans, core, context, expression)
type: regression
A bug that is also a regression
Milestone
Juergen Hoeller opened SPR-14965 and commented
Introducing self reference injection in 4.3, the revision of the algorithm accidentally also choses a self reference as a fallback element for an empty collection injection point. Of course, self references were only meant to be used as a direct dependency declaration, not as a collection element. This is also what the documentation and the existing test cases suggest.
A collection of the same type can be used for aggregates, e.g. propagating an event to listeners, with the aggregate also implementing the listener interface itself. This still works fine if there are delegate listener beans in the context but unfortunately fails as of 4.3 when the collection is declared as optional and meant to remain uninjected if no delegates are found, since all of a sudden there is a single-element collection with a self reference to the aggregate... This is a regression that needs to be fixed as of 4.3.5; better late than never.
Affects: 4.3.4
Issue Links:
@Autowired-like
self injection@Autowired
does not work for target bean of type CollectionReferenced from: commits 7ac9f92, ac5933a
The text was updated successfully, but these errors were encountered: