You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by gp...@apache.org on 2013/05/21 21:02:31 UTC

svn commit: r1484905 - /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/InjectionExceptionUtil.java

Author: gpetracek
Date: Tue May 21 19:02:31 2013
New Revision: 1484905

URL: http://svn.apache.org/r1484905
Log:
OWB-774 additional hint in case of an AmbiguousResolutionException and cleanup

Modified:
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/InjectionExceptionUtil.java

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/InjectionExceptionUtil.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/InjectionExceptionUtil.java?rev=1484905&r1=1484904&r2=1484905&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/InjectionExceptionUtil.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/InjectionExceptionUtil.java Tue May 21 19:02:31 2013
@@ -28,8 +28,6 @@ import javax.enterprise.inject.Unsatisfi
 import javax.enterprise.inject.UnproxyableResolutionException;
 import java.util.Set;
 import java.lang.annotation.Annotation;
-import java.lang.reflect.Method;
-import java.lang.reflect.Type;
 
 public class InjectionExceptionUtil
 {
@@ -46,21 +44,6 @@ public class InjectionExceptionUtil
                         .toString());
     }
 
-    public static void throwUnsatisfiedResolutionException(Type type, Method producerMethod, Annotation... qualifiers)
-    {
-        ViolationMessageBuilder violationMessage = newViolation(createProducerMethodMessage(producerMethod));
-
-        violationMessage.append(" in class: ", ClassUtil.getClass(type).getName());
-        violationMessage.addLine(createQualifierMessage(qualifiers));
-
-        throw new UnsatisfiedResolutionException(violationMessage.toString());
-    }
-
-    private static String createProducerMethodMessage(Method producerMethod)
-    {
-        return "Producer method component of the disposal method : " + producerMethod.getName() + "is not found";
-    }
-
     public static void throwUnsatisfiedResolutionException(
             Class type, InjectionPoint injectionPoint, Annotation... qualifiers)
     {
@@ -123,9 +106,20 @@ public class InjectionExceptionUtil
 
     private static void addBeanInfo(Set<Bean<?>> beans, ViolationMessageBuilder violationMessage)
     {
+        String sourcePath;
         for(Bean<?> currentBean : beans)
         {
-            violationMessage.addLine(currentBean.toString());
+            try
+            {
+                Class beanClass = currentBean.getBeanClass();
+                sourcePath = beanClass.getResource(beanClass.getSimpleName() + ".class").toExternalForm();
+            }
+            catch (RuntimeException e)
+            {
+                sourcePath = "unknown path";
+            }
+
+            violationMessage.addLine(currentBean.toString() + " from " + sourcePath);
         }
     }