Skip to content

Self reference fallback in 4.3 is not meant to apply to collection elements [SPR-14965] #19532

Closed
@spring-projects-issues

Description

@spring-projects-issues

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:

Referenced from: commits 7ac9f92, ac5933a

Metadata

Metadata

Assignees

Labels

in: coreIssues in core modules (aop, beans, core, context, expression)type: regressionA bug that is also a regression

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions