Skip to content

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

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
spring-projects-issues opened this issue Nov 30, 2016 · 0 comments
Assignees
Labels
in: core Issues in core modules (aop, beans, core, context, expression) type: regression A bug that is also a regression
Milestone

Comments

@spring-projects-issues
Copy link
Collaborator

spring-projects-issues commented Nov 30, 2016

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
in: core Issues in core modules (aop, beans, core, context, expression) type: regression A bug that is also a regression
Projects
None yet
Development

No branches or pull requests

2 participants