Author: bodewig
Date: Thu May 7 10:58:29 2009
New Revision: 772606
URL: http://svn.apache.org/viewvc?rev=772606&view=rev
Log:
special handling of IllegalArgumentExceptions in attribute setters for better
error messages. PR 47129
Modified:
ant/core/trunk/src/main/org/apache/tools/ant/IntrospectionHelper.java
Modified: ant/core/trunk/src/main/org/apache/tools/ant/IntrospectionHelper.java
URL:
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/IntrospectionHelper.java?rev=772606&r1=772605&r2=772606&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/IntrospectionHelper.java
(original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/IntrospectionHelper.java Thu
May 7 10:58:29 2009
@@ -1139,6 +1139,10 @@
try {
m.invoke(parent, new Object[] {
new Long(StringUtils.parseHumanSizes(value))
});
+ } catch (NumberFormatException e) {
+ throw new BuildException("Can't assign non-numeric"
+ + " value '" + value + "' to"
+ + " attribute " + attrName);
} catch (InvocationTargetException e) {
throw e;
} catch (IllegalAccessException e) {
@@ -1184,6 +1188,17 @@
p.setProjectReference(attribute);
}
m.invoke(parent, new Object[] {attribute});
+ } catch (InvocationTargetException e) {
+ Throwable cause = e.getCause();
+ if (cause instanceof IllegalArgumentException) {
+ throw new BuildException("Can't assign value '" + value
+ + "' to attribute " + attrName
+ + ", reason: "
+ + cause.getClass()
+ + " with message '"
+ + cause.getMessage() + "'");
+ }
+ throw e;
} catch (InstantiationException ie) {
throw new BuildException(ie);
}