After upgrading to Spring 5.0.0 the following exception occurs during application runtime:
Caused by: org.springframework.beans.factory.support.BeanDefinitionValidationException: Couldn't find an init method named 'initialize' on bean with name 'offlineMode'
I tracked it down to the AbstractAutowireCapableBeanFactory.invokeCustomInitMethod where the bean object is correctly typed as NullBean.class. But nonetheless there is a BeanDefinitionValidationException thrown because the initMethod is null. Is this an expected change in behavior from 4.x to 5.x? For our situation its a breaking change because there is a 3rd party library initialized that can produce null beans. If that change was expected, whats the correct way to do handle that situation with 5.x?
Affects: 5.0 GA
#20582 CastClass exception when wiring Map of beans (NullBean instead of 'null' in the map)
#20384 Autowire contract is not honored in cases where FactoryBean or @Bean return null
While it is rather unusual for an init method to be declared against a potential null bean, we simply ignored such a setting before and should still do so now. I'll fix this for 5.0.1, to be available in tonight's 5.0.1.BUILD-SNAPSHOT.