]
Adrian Brock commented on JBMICROCONT-421:
------------------------------------------
I've fixed this by adding all the "resolved" contexts that are ready to
process to the "installing" set.
This is only in trunk. I'm not closing this because this needs to be validated against
users (deployers/JBossAS, etc)
to make sure it doesn't introduce some unexpected backwards compatiblity problem.
Unwanted recursion when Controller.install() is used recursively
----------------------------------------------------------------
Key: JBMICROCONT-421
URL:
https://jira.jboss.org/jira/browse/JBMICROCONT-421
Project: JBoss Microcontainer
Issue Type: Bug
Components: Dependency
Reporter: Adrian Brock
There is some unwanted/unrelated recursion happening when Controller.install() is used
recurisvely.
Imagine there are 3 contexts A,B,C all waiting on dependency D
When D is satisified all A,B,C do a further installation to the Controller.
What happens is that Controller says A, B and C are resolved
The controller then adds A to its "processing" set.
When A does its install its spots B and C are ready to move
and so it repeats the above for B which will in turn lead to the same thing for C.
D installed -> A.start() -> install() -> B.start() -> install() ->
C.start()
When there are many A, B, C this will lead to a stack overflow.
The A, B, C are actually independent so there it should look more like:
D installed
-> A.start() -> install()
-> B.start() -> install()
-> C.start() -> install()
i.e. the invocations on A, B and C should happen on the same level of the call stack.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: