From 18bd4a83375a1815dbf83aca384cf7f5c27e93f5 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Mon, 15 Feb 2010 13:01:46 +0000 Subject: [PATCH] improved "no matching factory method found" exception message (SPR-6837) --- .../beans/factory/support/ConstructorResolver.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/org.springframework.beans/src/main/java/org/springframework/beans/factory/support/ConstructorResolver.java b/org.springframework.beans/src/main/java/org/springframework/beans/factory/support/ConstructorResolver.java index 3794bc6d16d..e77326963b0 100644 --- a/org.springframework.beans/src/main/java/org/springframework/beans/factory/support/ConstructorResolver.java +++ b/org.springframework.beans/src/main/java/org/springframework/beans/factory/support/ConstructorResolver.java @@ -484,14 +484,14 @@ class ConstructorResolver { factoryMethodToUse = candidate; argsToUse = args.arguments; minTypeDiffWeight = typeDiffWeight; - ambiguousFactoryMethods = null; + ambiguousFactoryMethods = null; } else if (factoryMethodToUse != null && typeDiffWeight == minTypeDiffWeight) { - if ( ambiguousFactoryMethods == null) { - ambiguousFactoryMethods = new LinkedHashSet(); - ambiguousFactoryMethods.add(factoryMethodToUse); + if (ambiguousFactoryMethods == null) { + ambiguousFactoryMethods = new LinkedHashSet(); + ambiguousFactoryMethods.add(factoryMethodToUse); } - ambiguousFactoryMethods.add(candidate); + ambiguousFactoryMethods.add(candidate); } } } @@ -501,7 +501,9 @@ class ConstructorResolver { "No matching factory method found: " + (mbd.getFactoryBeanName() != null ? "factory bean '" + mbd.getFactoryBeanName() + "'; " : "") + - "factory method '" + mbd.getFactoryMethodName() + "'"); + "factory method '" + mbd.getFactoryMethodName() + "'. " + + "Check that a method of the specified name exists and that it is " + + (isStatic ? "static" : "non-static") + "."); } else if (void.class.equals(factoryMethodToUse.getReturnType())) { throw new BeanCreationException(mbd.getResourceDescription(), beanName,