diff --git a/org.springframework.beans/src/main/java/org/springframework/beans/factory/NoSuchBeanDefinitionException.java b/org.springframework.beans/src/main/java/org/springframework/beans/factory/NoSuchBeanDefinitionException.java index fe2cd7f987ae87dd6ce8af1997efb1aaf8dde581..e8d929f348b4cc386971bec619e13f84da211b29 100644 --- a/org.springframework.beans/src/main/java/org/springframework/beans/factory/NoSuchBeanDefinitionException.java +++ b/org.springframework.beans/src/main/java/org/springframework/beans/factory/NoSuchBeanDefinitionException.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2007 the original author or authors. + * Copyright 2002-2009 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,6 +17,7 @@ package org.springframework.beans.factory; import org.springframework.beans.BeansException; +import org.springframework.util.StringUtils; /** * Exception thrown when a BeanFactory is asked for a bean @@ -79,8 +80,9 @@ public class NoSuchBeanDefinitionException extends BeansException { * @param message detailed message describing the problem */ public NoSuchBeanDefinitionException(Class type, String dependencyDescription, String message) { - super("No matching bean of type [" + type.getName() + "] found for dependency [" + - dependencyDescription + "]: " + message); + super("No matching bean of type [" + type.getName() + "] found for dependency" + + (StringUtils.hasLength(dependencyDescription) ? " [" + dependencyDescription + "]" : "") + + ": " + message); this.beanType = type; } diff --git a/org.springframework.beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java b/org.springframework.beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java index ef09f8667624c3fb625023814583f343f1f45d61..3863c6b48dee6e565889a6dafafb2a2ae87adf11 100644 --- a/org.springframework.beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java +++ b/org.springframework.beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java @@ -763,16 +763,15 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto Map matchingBeans = findAutowireCandidates(beanName, type, descriptor); if (matchingBeans.isEmpty()) { if (descriptor.isRequired()) { - throw new NoSuchBeanDefinitionException(type, - "Unsatisfied dependency of type [" + type + "]: expected at least 1 matching bean"); + raiseNoSuchBeanDefinitionException(type, "", descriptor); } return null; } if (matchingBeans.size() > 1) { String primaryBeanName = determinePrimaryCandidate(matchingBeans, descriptor); if (primaryBeanName == null) { - throw new NoSuchBeanDefinitionException(type, - "expected single matching bean but found " + matchingBeans.size() + ": " + matchingBeans.keySet()); + throw new NoSuchBeanDefinitionException(type, "expected single matching bean but found " + + matchingBeans.size() + ": " + matchingBeans.keySet()); } if (autowiredBeanNames != null) { autowiredBeanNames.add(primaryBeanName);