Author: bayard
Date: Mon Nov  6 21:32:04 2006
New Revision: 471990

URL: http://svn.apache.org/viewvc?view=rev&rev=471990
Log:
Applying the improved Exception message from BEANUTILS-224. Thanks to Ralf 
Hauser

Modified:
    
jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/PropertyUtilsBean.java

Modified: 
jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/PropertyUtilsBean.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/PropertyUtilsBean.java?view=diff&rev=471990&r1=471989&r2=471990
==============================================================================
--- 
jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/PropertyUtilsBean.java
 (original)
+++ 
jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/PropertyUtilsBean.java
 Mon Nov  6 21:32:04 2006
@@ -1993,11 +1993,34 @@
             return method.invoke(bean, values);
         
         } catch (IllegalArgumentException e) {
-            
-            log.error("Method invocation failed.", e);
+            String valueString = "";
+            if (values != null) {
+                for (int i = 0; i < values.length; i++) {
+                    if (i>0) {
+                        valueString += ", " ;
+                    }
+                    valueString += (values[i]).getClass().getName();
+                }
+            }
+            String expectedString = "";
+            Class[] parTypes = method.getParameterTypes();
+            if (parTypes != null) {
+                for (int i = 0; i < parTypes.length; i++) {
+                    if (i > 0) {
+                        expectedString += ", ";
+                    }
+                    expectedString += parTypes[i].getName();
+                }
+            }
+            log.error("Method invocation failed", e);
             throw new IllegalArgumentException(
                 "Cannot invoke " + method.getDeclaringClass().getName() + "." 
-                + method.getName() + " - " + e.getMessage());
+                + method.getName() + " - " + e.getMessage()
+                // as per https://issues.apache.org/jira/browse/BEANUTILS-224
+                + " - had objects of type \"" + valueString
+                + "\" but expected signature \""
+                +   expectedString + "\""
+                );
             
         }
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to