@@ -1124,24 +1124,27 @@ protected void autowireByType(
1124
1124
for (String propertyName : propertyNames ) {
1125
1125
try {
1126
1126
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
+ }
1142
1145
}
1146
+ autowiredBeanNames .clear ();
1143
1147
}
1144
- autowiredBeanNames .clear ();
1145
1148
}
1146
1149
catch (BeansException ex ) {
1147
1150
throw new UnsatisfiedDependencyException (mbd .getResourceDescription (), beanName , propertyName , ex );
0 commit comments