Browse Source

PR 56830 classloader hint when assigning refs fails

master
Stefan Bodewig 10 years ago
parent
commit
963d6c9a0a
1 changed files with 8 additions and 2 deletions
  1. +8
    -2
      src/main/org/apache/tools/ant/types/DataType.java

+ 8
- 2
src/main/org/apache/tools/ant/types/DataType.java View File

@@ -241,14 +241,16 @@ public abstract class DataType extends ProjectComponent implements Cloneable {
* @since Ant 1.7
*/
protected <T> T getCheckedRef(final Class<T> requiredClass,
final String dataTypeName, final Project project) {
final String dataTypeName, final Project project) {
if (project == null) {
throw new BuildException("No Project specified");
}
dieOnCircularReference(project);
Object o = ref.getReferencedObject(project);
if (!(requiredClass.isAssignableFrom(o.getClass()))) {
log("Class " + o.getClass() + " is not a subclass of " + requiredClass,
log("Class " + displayName(o.getClass())
+ " is not a subclass of "
+ displayName(requiredClass),
Project.MSG_VERBOSE);
String msg = ref.getRefId() + " doesn\'t denote a " + dataTypeName;
throw new BuildException(msg);
@@ -357,5 +359,9 @@ public abstract class DataType extends ProjectComponent implements Cloneable {
dt.setChecked(isChecked());
return dt;
}

private String displayName(Class<?> clazz) {
return clazz.getName() + " (loaded via " + clazz.getClassLoader() +")";
}
}


Loading…
Cancel
Save