Author: gseitz
Date: Tue May 25 22:41:23 2010
New Revision: 948230

URL: http://svn.apache.org/viewvc?rev=948230&view=rev
Log:
Applied WICKET-2771

Modified:
    
wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/AnnotProxyFieldValueFactory.java

Modified: 
wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/AnnotProxyFieldValueFactory.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/AnnotProxyFieldValueFactory.java?rev=948230&r1=948229&r2=948230&view=diff
==============================================================================
--- 
wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/AnnotProxyFieldValueFactory.java
 (original)
+++ 
wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/AnnotProxyFieldValueFactory.java
 Tue May 25 22:41:23 2010
@@ -31,6 +31,7 @@ import org.apache.wicket.util.lang.Gener
 import org.apache.wicket.util.string.Strings;
 import org.springframework.beans.factory.BeanFactoryUtils;
 import org.springframework.beans.factory.config.BeanDefinition;
+import org.springframework.beans.factory.support.AbstractBeanDefinition;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.support.AbstractApplicationContext;
 
@@ -181,7 +182,7 @@ public class AnnotProxyFieldValueFactory
                List<String> names = new 
ArrayList<String>(Arrays.asList(BeanFactoryUtils
                                .beanNamesForTypeIncludingAncestors(ctx, 
clazz)));
 
-               // filter out beans that are not condidates for autowiring
+               // filter out beans that are not candidates for autowiring
                Iterator<String> it = names.iterator();
                while (it.hasNext())
                {
@@ -201,6 +202,21 @@ public class AnnotProxyFieldValueFactory
                }
                else if (names.size() > 1)
                {
+                       if (ctx instanceof AbstractApplicationContext)
+                       {
+                               for (String name : names)
+                               {
+                                       BeanDefinition beanDef = 
((AbstractApplicationContext)ctx).getBeanFactory()
+                                                       
.getBeanDefinition(name);
+                                       if (beanDef instanceof 
AbstractBeanDefinition)
+                                       {
+                                               if 
(((AbstractBeanDefinition)beanDef).isPrimary())
+                                               {
+                                                       return name;
+                                               }
+                                       }
+                               }
+                       }
                        StringBuilder msg = new StringBuilder();
                        msg.append("more then one bean of type [");
                        msg.append(clazz.getName());


Reply via email to