@@ -410,37 +410,36 @@ public void applyBeanPropertyValues(Object existingBean, String beanName) throws
410
410
}
411
411
412
412
@ Override
413
- @ Nullable
414
413
public Object initializeBean (Object existingBean , String beanName ) {
415
414
return initializeBean (beanName , existingBean , null );
416
415
}
417
416
418
417
@ Override
419
- @ Nullable
420
418
public Object applyBeanPostProcessorsBeforeInitialization (Object existingBean , String beanName )
421
419
throws BeansException {
422
420
423
421
Object result = existingBean ;
424
422
for (BeanPostProcessor beanProcessor : getBeanPostProcessors ()) {
425
- result = beanProcessor .postProcessBeforeInitialization (result , beanName );
426
- if (result == null ) {
427
- return null ;
423
+ Object current = beanProcessor .postProcessBeforeInitialization (result , beanName );
424
+ if (current == null ) {
425
+ return result ;
428
426
}
427
+ result = current ;
429
428
}
430
429
return result ;
431
430
}
432
431
433
432
@ Override
434
- @ Nullable
435
433
public Object applyBeanPostProcessorsAfterInitialization (Object existingBean , String beanName )
436
434
throws BeansException {
437
435
438
436
Object result = existingBean ;
439
437
for (BeanPostProcessor beanProcessor : getBeanPostProcessors ()) {
440
- result = beanProcessor .postProcessAfterInitialization (result , beanName );
441
- if (result == null ) {
442
- return null ;
438
+ Object current = beanProcessor .postProcessAfterInitialization (result , beanName );
439
+ if (current == null ) {
440
+ return result ;
443
441
}
442
+ result = current ;
444
443
}
445
444
return result ;
446
445
}
@@ -461,7 +460,6 @@ public void destroyBean(Object existingBean) {
461
460
* @see #doCreateBean
462
461
*/
463
462
@ Override
464
- @ Nullable
465
463
protected Object createBean (String beanName , RootBeanDefinition mbd , @ Nullable Object [] args )
466
464
throws BeanCreationException {
467
465
@@ -535,7 +533,6 @@ protected Object createBean(String beanName, RootBeanDefinition mbd, @Nullable O
535
533
* @see #instantiateUsingFactoryMethod
536
534
* @see #autowireConstructor
537
535
*/
538
- @ Nullable
539
536
protected Object doCreateBean (final String beanName , final RootBeanDefinition mbd , final @ Nullable Object [] args )
540
537
throws BeanCreationException {
541
538
@@ -547,23 +544,23 @@ protected Object doCreateBean(final String beanName, final RootBeanDefinition mb
547
544
if (instanceWrapper == null ) {
548
545
instanceWrapper = createBeanInstance (beanName , mbd , args );
549
546
}
550
- final Object bean = (instanceWrapper != null ? instanceWrapper .getWrappedInstance () : null );
551
- Class <?> beanType = (instanceWrapper != null ? instanceWrapper .getWrappedClass () : null );
552
- mbd .resolvedTargetType = beanType ;
547
+ final Object bean = instanceWrapper .getWrappedInstance ();
548
+ Class <?> beanType = instanceWrapper .getWrappedClass ();
549
+ if (beanType != NullBean .class ) {
550
+ mbd .resolvedTargetType = beanType ;
551
+ }
553
552
554
- if (beanType != null ) {
555
- // Allow post-processors to modify the merged bean definition.
556
- synchronized (mbd .postProcessingLock ) {
557
- if (!mbd .postProcessed ) {
558
- try {
559
- applyMergedBeanDefinitionPostProcessors (mbd , beanType , beanName );
560
- }
561
- catch (Throwable ex ) {
562
- throw new BeanCreationException (mbd .getResourceDescription (), beanName ,
563
- "Post-processing of merged bean definition failed" , ex );
564
- }
565
- mbd .postProcessed = true ;
553
+ // Allow post-processors to modify the merged bean definition.
554
+ synchronized (mbd .postProcessingLock ) {
555
+ if (!mbd .postProcessed ) {
556
+ try {
557
+ applyMergedBeanDefinitionPostProcessors (mbd , beanType , beanName );
566
558
}
559
+ catch (Throwable ex ) {
560
+ throw new BeanCreationException (mbd .getResourceDescription (), beanName ,
561
+ "Post-processing of merged bean definition failed" , ex );
562
+ }
563
+ mbd .postProcessed = true ;
567
564
}
568
565
}
569
566
@@ -583,9 +580,7 @@ protected Object doCreateBean(final String beanName, final RootBeanDefinition mb
583
580
Object exposedObject = bean ;
584
581
try {
585
582
populateBean (beanName , mbd , instanceWrapper );
586
- if (exposedObject != null ) {
587
- exposedObject = initializeBean (beanName , exposedObject , mbd );
588
- }
583
+ exposedObject = initializeBean (beanName , exposedObject , mbd );
589
584
}
590
585
catch (Throwable ex ) {
591
586
if (ex instanceof BeanCreationException && beanName .equals (((BeanCreationException ) ex ).getBeanName ())) {
@@ -624,15 +619,13 @@ else if (!this.allowRawInjectionDespiteWrapping && hasDependentBean(beanName)) {
624
619
}
625
620
}
626
621
627
- if (bean != null ) {
628
- // Register bean as disposable.
629
- try {
630
- registerDisposableBeanIfNecessary (beanName , bean , mbd );
631
- }
632
- catch (BeanDefinitionValidationException ex ) {
633
- throw new BeanCreationException (
634
- mbd .getResourceDescription (), beanName , "Invalid destruction signature" , ex );
635
- }
622
+ // Register bean as disposable.
623
+ try {
624
+ registerDisposableBeanIfNecessary (beanName , bean , mbd );
625
+ }
626
+ catch (BeanDefinitionValidationException ex ) {
627
+ throw new BeanCreationException (
628
+ mbd .getResourceDescription (), beanName , "Invalid destruction signature" , ex );
636
629
}
637
630
638
631
return exposedObject ;
@@ -904,17 +897,13 @@ class Holder { @Nullable Class<?> value = null; }
904
897
* @param bean the raw bean instance
905
898
* @return the object to expose as bean reference
906
899
*/
907
- @ Nullable
908
- protected Object getEarlyBeanReference (String beanName , RootBeanDefinition mbd , @ Nullable Object bean ) {
900
+ protected Object getEarlyBeanReference (String beanName , RootBeanDefinition mbd , Object bean ) {
909
901
Object exposedObject = bean ;
910
- if (bean != null && !mbd .isSynthetic () && hasInstantiationAwareBeanPostProcessors ()) {
902
+ if (!mbd .isSynthetic () && hasInstantiationAwareBeanPostProcessors ()) {
911
903
for (BeanPostProcessor bp : getBeanPostProcessors ()) {
912
904
if (bp instanceof SmartInstantiationAwareBeanPostProcessor ) {
913
905
SmartInstantiationAwareBeanPostProcessor ibp = (SmartInstantiationAwareBeanPostProcessor ) bp ;
914
906
exposedObject = ibp .getEarlyBeanReference (exposedObject , beanName );
915
- if (exposedObject == null ) {
916
- return null ;
917
- }
918
907
}
919
908
}
920
909
}
@@ -954,9 +943,6 @@ private FactoryBean<?> getSingletonFactoryBeanForTypeCheck(String beanName, Root
954
943
instance = resolveBeforeInstantiation (beanName , mbd );
955
944
if (instance == null ) {
956
945
bw = createBeanInstance (beanName , mbd , null );
957
- if (bw == null ) {
958
- return null ;
959
- }
960
946
instance = bw .getWrappedInstance ();
961
947
}
962
948
}
@@ -995,9 +981,6 @@ private FactoryBean<?> getNonSingletonFactoryBeanForTypeCheck(String beanName, R
995
981
instance = resolveBeforeInstantiation (beanName , mbd );
996
982
if (instance == null ) {
997
983
BeanWrapper bw = createBeanInstance (beanName , mbd , null );
998
- if (bw == null ) {
999
- return null ;
1000
- }
1001
984
instance = bw .getWrappedInstance ();
1002
985
}
1003
986
}
@@ -1097,7 +1080,6 @@ protected Object applyBeanPostProcessorsBeforeInstantiation(Class<?> beanClass,
1097
1080
* @see #autowireConstructor
1098
1081
* @see #instantiateBean
1099
1082
*/
1100
- @ Nullable
1101
1083
protected BeanWrapper createBeanInstance (String beanName , RootBeanDefinition mbd , @ Nullable Object [] args ) {
1102
1084
// Make sure bean class is actually resolved at this point.
1103
1085
Class <?> beanClass = resolveBeanClass (mbd , beanName );
@@ -1184,9 +1166,8 @@ protected BeanWrapper obtainFromSupplier(Supplier<?> instanceSupplier, String be
1184
1166
* @see #obtainFromSupplier
1185
1167
*/
1186
1168
@ Override
1187
- @ Nullable
1188
1169
protected Object getObjectForBeanInstance (
1189
- @ Nullable Object beanInstance , String name , String beanName , @ Nullable RootBeanDefinition mbd ) {
1170
+ Object beanInstance , String name , String beanName , @ Nullable RootBeanDefinition mbd ) {
1190
1171
1191
1172
String currentlyCreatedBean = this .currentlyCreatedBean .get ();
1192
1173
if (currentlyCreatedBean != null ) {
@@ -1262,7 +1243,6 @@ protected BeanWrapper instantiateBean(final String beanName, final RootBeanDefin
1262
1243
* @return a BeanWrapper for the new instance
1263
1244
* @see #getBean(String, Object[])
1264
1245
*/
1265
- @ Nullable
1266
1246
protected BeanWrapper instantiateUsingFactoryMethod (
1267
1247
String beanName , RootBeanDefinition mbd , @ Nullable Object [] explicitArgs ) {
1268
1248
@@ -1698,7 +1678,6 @@ private Object convertForProperty(Object value, String propertyName, BeanWrapper
1698
1678
* @see #invokeInitMethods
1699
1679
* @see #applyBeanPostProcessorsAfterInitialization
1700
1680
*/
1701
- @ Nullable
1702
1681
protected Object initializeBean (final String beanName , final Object bean , @ Nullable RootBeanDefinition mbd ) {
1703
1682
if (System .getSecurityManager () != null ) {
1704
1683
AccessController .doPrivileged ((PrivilegedAction <Object >) () -> {
@@ -1715,18 +1694,16 @@ protected Object initializeBean(final String beanName, final Object bean, @Nulla
1715
1694
wrappedBean = applyBeanPostProcessorsBeforeInitialization (wrappedBean , beanName );
1716
1695
}
1717
1696
1718
- if (wrappedBean != null ) {
1719
- try {
1720
- invokeInitMethods (beanName , wrappedBean , mbd );
1721
- }
1722
- catch (Throwable ex ) {
1723
- throw new BeanCreationException (
1724
- (mbd != null ? mbd .getResourceDescription () : null ),
1725
- beanName , "Invocation of init method failed" , ex );
1726
- }
1727
- if (mbd == null || !mbd .isSynthetic ()) {
1728
- wrappedBean = applyBeanPostProcessorsAfterInitialization (wrappedBean , beanName );
1729
- }
1697
+ try {
1698
+ invokeInitMethods (beanName , wrappedBean , mbd );
1699
+ }
1700
+ catch (Throwable ex ) {
1701
+ throw new BeanCreationException (
1702
+ (mbd != null ? mbd .getResourceDescription () : null ),
1703
+ beanName , "Invocation of init method failed" , ex );
1704
+ }
1705
+ if (mbd == null || !mbd .isSynthetic ()) {
1706
+ wrappedBean = applyBeanPostProcessorsAfterInitialization (wrappedBean , beanName );
1730
1707
}
1731
1708
1732
1709
return wrappedBean ;
0 commit comments