[
https://jira.jboss.org/jira/browse/JBSEAM-3362?page=com.atlassian.jira.pl...
]
Pete Muir commented on JBSEAM-3362:
-----------------------------------
Say Foo has an @In(required=false) attribute called
somethingProvidedByBar.
When someMethod() is invoked on Foo, and trying to satisfy the injection of bar
results in Bar calling Foo.someOtherMethod(), then we should bail on this injection
attempt, and let somethingProvidedByBar be null for the invocation of someMethod().
Exactly. However I too can't immediately see a good way to implement this, apart from
reworking the BijectionInterceptor to allow cyclic dependencies again.
How about we get (1) fixed, and then release like this in CR and see if we get many
complaints from users.
Detect cyclic dependencies and throw exception
----------------------------------------------
Key: JBSEAM-3362
URL:
https://jira.jboss.org/jira/browse/JBSEAM-3362
Project: Seam
Issue Type: Feature Request
Components: Core
Affects Versions: 2.0.3.CR1, 2.1.0.BETA1
Reporter: Matt Drees
Assignee: Matt Drees
Priority: Minor
Fix For: 2.0.3.CR2, 2.1.0.CR1
Imagine a scenario like this. Some client calls someMethod() on a component called Foo.
BijectionInterceptor tries to inject Foo's @in attributes, one of which requires
calling a factory method on Bar. Bar's factory method in turn calls
Foo.someOtherMethod(). Foo is not in a state where it can support method calls, because
it is in the process of injecting dependencies, so this sort of cyclic dependency should
not be allowed. Seam should throw an exception in this case.
BijectionInterceptor used to be coded such that someOtherMethod() would run without any
complaints, and any @In attributes may or may not be null, depending on which fields were
injected first. Recent changes to BijectionInterceptor (for JBSEAM-3295) have changed
this behavior, and now an finite loop results. Neither of these behaviors is desirable.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira