Blueprint initialization can hang after ARIES-960

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Blueprint initialization can hang after ARIES-960

Arnaud Yahoo
Hello,

It seems ARIES-960 can slow down a blueprint container initialization so
much that it seems to hang.

We have a big blueprint xml file with lot of beans having many arguments
on their constructor.

Switching to blueprint-core 1.9 the application seemed to hang during
startup.

After some debugging, most of the time is spend in
org.apache.aries.blueprint.utils.generics.TypeInference.findMatching(List<Executable<E>>,
List<TypedObject>, Converter, boolean)

For example, for a bean with 10 arguments in constuctor and arguments
defined in blueprint xml in a wrong order, factorial method returns a
pretty big number, so a long time is spend in the loop of argument
permutation.

Of course we manage to fix this by declaring arguments in the same order
than declared in constructor.

Not really an issue, even we did not experienced this in 1.8, but it
could be good to display some logging (even in debug) indicating there
is no match with declared argument order, so aries is trying different
argument permutation to find a match.

Arnaud