@@ -232,11 +232,14 @@ public BeanWrapper autowireConstructor(String beanName, RootBeanDefinition mbd,
232
232
Class <?>[] paramTypes = candidate .getParameterTypes ();
233
233
if (resolvedValues != null ) {
234
234
try {
235
- String [] paramNames = ConstructorPropertiesChecker .evaluate (candidate , parameterCount );
236
- if (paramNames == null ) {
237
- ParameterNameDiscoverer pnd = this .beanFactory .getParameterNameDiscoverer ();
238
- if (pnd != null ) {
239
- paramNames = pnd .getParameterNames (candidate );
235
+ String [] paramNames = null ;
236
+ if (resolvedValues .containsNamedArgument ()) {
237
+ paramNames = ConstructorPropertiesChecker .evaluate (candidate , parameterCount );
238
+ if (paramNames == null ) {
239
+ ParameterNameDiscoverer pnd = this .beanFactory .getParameterNameDiscoverer ();
240
+ if (pnd != null ) {
241
+ paramNames = pnd .getParameterNames (candidate );
242
+ }
240
243
}
241
244
}
242
245
argsHolder = createArgumentArray (beanName , mbd , resolvedValues , bw , paramTypes , paramNames ,
@@ -536,9 +539,11 @@ public BeanWrapper instantiateUsingFactoryMethod(
536
539
// Resolved constructor arguments: type conversion and/or autowiring necessary.
537
540
try {
538
541
String [] paramNames = null ;
539
- ParameterNameDiscoverer pnd = this .beanFactory .getParameterNameDiscoverer ();
540
- if (pnd != null ) {
541
- paramNames = pnd .getParameterNames (candidate );
542
+ if (resolvedValues != null && resolvedValues .containsNamedArgument ()) {
543
+ ParameterNameDiscoverer pnd = this .beanFactory .getParameterNameDiscoverer ();
544
+ if (pnd != null ) {
545
+ paramNames = pnd .getParameterNames (candidate );
546
+ }
542
547
}
543
548
argsHolder = createArgumentArray (beanName , mbd , resolvedValues , bw ,
544
549
paramTypes , paramNames , candidate , autowiring , candidates .size () == 1 );
0 commit comments