@@ -1408,7 +1408,8 @@ public Object doResolveDependency(DependencyDescriptor descriptor, @Nullable Str
1408
1408
}
1409
1409
if (dependencyName != null &&
1410
1410
isTypeMatch (dependencyName , type ) && isAutowireCandidate (dependencyName , descriptor ) &&
1411
- !hasPrimaryConflict (dependencyName , type ) && !isSelfReference (beanName , dependencyName )) {
1411
+ !isFallback (dependencyName ) && !hasPrimaryConflict (dependencyName , type ) &&
1412
+ !isSelfReference (beanName , dependencyName )) {
1412
1413
if (autowiredBeanNames != null ) {
1413
1414
autowiredBeanNames .add (dependencyName );
1414
1415
}
@@ -1819,10 +1820,8 @@ else if (candidateLocal) {
1819
1820
}
1820
1821
// Second pass: identify unique non-fallback candidate
1821
1822
if (primaryBeanName == null ) {
1822
- for (Map .Entry <String , Object > entry : candidates .entrySet ()) {
1823
- String candidateBeanName = entry .getKey ();
1824
- Object beanInstance = entry .getValue ();
1825
- if (!isFallback (candidateBeanName , beanInstance )) {
1823
+ for (String candidateBeanName : candidates .keySet ()) {
1824
+ if (!isFallback (candidateBeanName )) {
1826
1825
if (primaryBeanName != null ) {
1827
1826
return null ;
1828
1827
}
@@ -1896,17 +1895,15 @@ protected boolean isPrimary(String beanName, Object beanInstance) {
1896
1895
* Return whether the bean definition for the given bean name has been
1897
1896
* marked as a fallback bean.
1898
1897
* @param beanName the name of the bean
1899
- * @param beanInstance the corresponding bean instance (can be {@code null})
1900
- * @return whether the given bean qualifies as fallback
1901
1898
* @since 6.2
1902
1899
*/
1903
- protected boolean isFallback (String beanName , Object beanInstance ) {
1900
+ private boolean isFallback (String beanName ) {
1904
1901
String transformedBeanName = transformedBeanName (beanName );
1905
1902
if (containsBeanDefinition (transformedBeanName )) {
1906
1903
return getMergedLocalBeanDefinition (transformedBeanName ).isFallback ();
1907
1904
}
1908
1905
return (getParentBeanFactory () instanceof DefaultListableBeanFactory parent &&
1909
- parent .isFallback (transformedBeanName , beanInstance ));
1906
+ parent .isFallback (transformedBeanName ));
1910
1907
}
1911
1908
1912
1909
/**
@@ -1954,7 +1951,6 @@ private boolean isSelfReference(@Nullable String beanName, @Nullable String cand
1954
1951
* Determine whether there is a primary bean registered for the given dependency type,
1955
1952
* not matching the given bean name.
1956
1953
*/
1957
- @ Nullable
1958
1954
private boolean hasPrimaryConflict (String beanName , Class <?> dependencyType ) {
1959
1955
for (String candidate : this .primaryBeanNames ) {
1960
1956
if (isTypeMatch (candidate , dependencyType ) && !candidate .equals (beanName )) {
0 commit comments