Closed
Description
AdiB opened SPR-11343 and commented
Related to #12149
RootBeanDefinition members (externallyManagedConfigMember, externallyManagedInitMethods,externallyManagedDestroyMethods) are initialized even if not in use.
Setting ConcurrentHashMap initial size as 0 is not good enough it still allocates a map with ~ 10 empty elements.
Should delay the initialization.
For example -
public void registerExternallyManagedConfigMember(Member configMember) {
if (externallyManagedConfigMembers == null){
externallyManagedConfigMembers = new ConcurrentHashMap<Member, Boolean>(0);
}
this.externallyManagedConfigMembers.put(configMember, Boolean.TRUE);
}
public boolean isExternallyManagedConfigMember(Member configMember) {
if (externallyManagedConfigMembers == null){
return false;
}
return this.externallyManagedConfigMembers.containsKey(configMember);
}
Affects: 3.2.6, 4.0 GA
Issue Links:
- Reduce footprint due to BeanDefinitions [SPR-7491] #12149 Reduce footprint due to BeanDefinitions
Referenced from: commits d9ab6aa, a599b57
Backported to: 3.2.7