Skip to content

Unnecessary class loading in AspectJ RuntimeTestWalker [SPR-11344] #15968

@spring-projects-issues

Description

@spring-projects-issues

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

Metadata

Metadata

Assignees

Labels

in: coreIssues in core modules (aop, beans, core, context, expression)status: backportedAn issue that has been backported to maintenance branchestype: enhancementA general enhancement

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions