@@ -1124,24 +1124,27 @@ protected void autowireByType(
11241124 for (String propertyName : propertyNames ) {
11251125 try {
11261126 PropertyDescriptor pd = bw .getPropertyDescriptor (propertyName );
1127- MethodParameter methodParam = BeanUtils .getWriteMethodParameter (pd );
1128- // Do not allow eager init for type matching in case of a prioritized post-processor.
1129- boolean eager = !PriorityOrdered .class .isAssignableFrom (bw .getWrappedClass ());
1130- DependencyDescriptor desc = new DependencyDescriptor (methodParam , false , eager );
1131-
1132- Object autowiredArgument = resolveDependency (desc , beanName , autowiredBeanNames , converter );
1133- if (autowiredArgument != null ) {
1134- pvs .add (propertyName , autowiredArgument );
1135- }
1136- for (String autowiredBeanName : autowiredBeanNames ) {
1137- registerDependentBean (autowiredBeanName , beanName );
1138- if (logger .isDebugEnabled ()) {
1139- logger .debug (
1140- "Autowiring by type from bean name '" + beanName + "' via property '" + propertyName +
1141- "' to bean named '" + autowiredBeanName + "'" );
1127+ // Don't try autowiring by type for type Object: never makes sense,
1128+ // even if it technically is a unsatisfied, non-simple property.
1129+ if (!Object .class .equals (pd .getPropertyType ())) {
1130+ MethodParameter methodParam = BeanUtils .getWriteMethodParameter (pd );
1131+ // Do not allow eager init for type matching in case of a prioritized post-processor.
1132+ boolean eager = !PriorityOrdered .class .isAssignableFrom (bw .getWrappedClass ());
1133+ DependencyDescriptor desc = new DependencyDescriptor (methodParam , false , eager );
1134+ Object autowiredArgument = resolveDependency (desc , beanName , autowiredBeanNames , converter );
1135+ if (autowiredArgument != null ) {
1136+ pvs .add (propertyName , autowiredArgument );
1137+ }
1138+ for (String autowiredBeanName : autowiredBeanNames ) {
1139+ registerDependentBean (autowiredBeanName , beanName );
1140+ if (logger .isDebugEnabled ()) {
1141+ logger .debug (
1142+ "Autowiring by type from bean name '" + beanName + "' via property '" + propertyName +
1143+ "' to bean named '" + autowiredBeanName + "'" );
1144+ }
11421145 }
1146+ autowiredBeanNames .clear ();
11431147 }
1144- autowiredBeanNames .clear ();
11451148 }
11461149 catch (BeansException ex ) {
11471150 throw new UnsatisfiedDependencyException (mbd .getResourceDescription (), beanName , propertyName , ex );
0 commit comments