ConfigurationClassUtils fails to introspect inner classes with dot name syntax (and silently ignores it) [SPR-12390] #16998
Labels
in: core
Issues in core modules (aop, beans, core, context, expression)
status: backported
An issue that has been backported to maintenance branches
type: bug
A general bug
Milestone
Oliver Drotbohm opened SPR-12390 and commented
ConfigurationClassUtils.checkConfigurationClassCandidate(…)
tries to create aMetadataReader
for the class name of theBeanDefinition
to be checked. If that lookup fails (e.g. because one misspelled the classname in an XML configuration file), the resultingIOException
will only appear in the debug logs.As we're inspecting a
BeanDefinition
about to be used, not being able to create aMetadataReader
indicates a more fundamental problem with the configuration and should probably be at least logged at a more severe log level.Another option would be to fix the inconsistency in
ClassUtils
(ultimately used by theMetadataReader
implementations) which currently has some methods (e.g.forName(…)
) that mitigate different styles of demarcating an inner class (.
-separated VS.$
-separated) while some other methods (e.g. (convertClassNameToResourcePath(…)
) don't seem to apply this mitigation.Affects: 3.2.11, 4.1.1
Issue Links:
Referenced from: commits 725ad0d, bb6349f, 2d874d7
Backported to: 4.0.8, 3.2.12
The text was updated successfully, but these errors were encountered: