[jboss-svn-commits] JBoss Common SVN: r2106 - jbossxb/trunk/src/main/java/org/jboss/xb/binding/introspection
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Oct 5 08:00:33 EDT 2006
Author: adrian at jboss.org
Date: 2006-10-05 08:00:31 -0400 (Thu, 05 Oct 2006)
New Revision: 2106
Modified:
jbossxb/trunk/src/main/java/org/jboss/xb/binding/introspection/FieldInfo.java
Log:
Some improvements to the error reporting.
Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/introspection/FieldInfo.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/introspection/FieldInfo.java 2006-10-05 12:00:15 UTC (rev 2105)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/introspection/FieldInfo.java 2006-10-05 12:00:31 UTC (rev 2106)
@@ -24,6 +24,8 @@
import java.lang.reflect.Method;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+
import org.jboss.util.Classes;
import org.jboss.xb.binding.JBossXBRuntimeException;
@@ -89,7 +91,35 @@
{
public void set(Object owner, Object value) throws IllegalAccessException, InvocationTargetException
{
- m.invoke(owner, new Object[]{value});
+ Object[] arguments = new Object[] { value };
+ try
+ {
+ m.invoke(owner, new Object[]{value});
+ }
+ catch (IllegalArgumentException e)
+ {
+ if (owner == null)
+ throw new IllegalArgumentException("Null target for " + m.getName());
+ ArrayList expected = new ArrayList();
+ Class[] parameters = m.getParameterTypes();
+ if (parameters != null)
+ {
+ for (int i = 0; i < parameters.length; ++i)
+ expected.add(parameters[i].getName());
+ }
+ ArrayList actual = new ArrayList();
+ if (arguments != null)
+ {
+ for (int i = 0; i < arguments.length; ++i)
+ {
+ if (arguments[i] == null)
+ actual.add(null);
+ else
+ actual.add(arguments[i].getClass().getName());
+ }
+ }
+ throw new IllegalArgumentException("Wrong arguments. " + m.getName() + " for target " + owner + " expected=" + expected + " actual=" + actual);
+ }
}
};
}
@@ -198,7 +228,7 @@
catch(Exception e)
{
throw new JBossXBRuntimeException(
- "Failed to get value of the property '" + name + "' defined in " + owner + " from instance " + owner
+ "Failed to get value of the property '" + name + "' defined in " + owner + " from instance " + owner, e
);
}
}
@@ -220,7 +250,7 @@
{
throw new JBossXBRuntimeException(
"Failed to set value '" + value + "' for property '" + name + "' defined in " +
- owner + " on instance " + owner
+ owner + " on instance " + owner, e
);
}
}
More information about the jboss-svn-commits
mailing list