Skip to content

Commit c32d559

Browse files
committed
AbstractAutowireCapableBeanFactory's createBean/autowireBean/configureBean use CacheUtils.isCacheSafe to re-enable PropertyDescriptor caching
Issue: SPR-11875 (cherry picked from commit 974bd43)
1 parent 5f695a4 commit c32d559

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ public <T> T createBean(Class<T> beanClass) throws BeansException {
286286
// Use prototype bean definition, to avoid registering bean as dependent bean.
287287
RootBeanDefinition bd = new RootBeanDefinition(beanClass);
288288
bd.setScope(SCOPE_PROTOTYPE);
289-
bd.allowCaching = false;
289+
bd.allowCaching = ClassUtils.isCacheSafe(beanClass, getBeanClassLoader());
290290
return (T) createBean(beanClass.getName(), bd, null);
291291
}
292292

@@ -295,7 +295,7 @@ public void autowireBean(Object existingBean) {
295295
// Use non-singleton bean definition, to avoid registering bean as dependent bean.
296296
RootBeanDefinition bd = new RootBeanDefinition(ClassUtils.getUserClass(existingBean));
297297
bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
298-
bd.allowCaching = false;
298+
bd.allowCaching = ClassUtils.isCacheSafe(bd.getBeanClass(), getBeanClassLoader());
299299
BeanWrapper bw = new BeanWrapperImpl(existingBean);
300300
initBeanWrapper(bw);
301301
populateBean(bd.getBeanClass().getName(), bd, bw);
@@ -315,7 +315,7 @@ public Object configureBean(Object existingBean, String beanName) throws BeansEx
315315
bd = new RootBeanDefinition(mbd);
316316
}
317317
bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
318-
bd.allowCaching = false;
318+
bd.allowCaching = ClassUtils.isCacheSafe(ClassUtils.getUserClass(existingBean), getBeanClassLoader());
319319
}
320320
BeanWrapper bw = new BeanWrapperImpl(existingBean);
321321
initBeanWrapper(bw);

0 commit comments

Comments
 (0)