Unnecessary class loading in AspectJ RuntimeTestWalker [SPR-11344] #15968
Labels
in: core
Issues in core modules (aop, beans, core, context, expression)
status: backported
An issue that has been backported to maintenance branches
type: enhancement
A general enhancement
Milestone
Juergen Hoeller opened SPR-11344 and commented
Within our AspectJ RuntimeTestWalker, the InstanceOfResidueTestVisitor resolves types via ClassUtils.forName(type.getName()). This can be become quite excessive and is fundamentally unnecessary, since the underlying AspectJ ReferenceType does hold the Class... It's just a bit buried.
The main problem is that a ClassLoader doesn't efficiently resolve classes that it loaded already. As a consequence, it cannot be treated as an efficient cache for class name -> Class. There is quite some lock contention going on there, at least on WebSphere's ClassLoader.
Affects: 3.2.6, 4.0 GA
Issue Links:
Backported to: 3.2.7
The text was updated successfully, but these errors were encountered: