diff --git a/src/main/org/apache/tools/ant/Project.java b/src/main/org/apache/tools/ant/Project.java index fc8aadc4c..b218b6f1d 100644 --- a/src/main/org/apache/tools/ant/Project.java +++ b/src/main/org/apache/tools/ant/Project.java @@ -1962,6 +1962,15 @@ public class Project implements ResourceFactory { return references; } + /** + * Does the project know this reference? + * + * @since Ant 1.8.0 + */ + public boolean hasReference(String key) { + return references.containsKey(key); + } + /** * Look up a reference by its key (ID). * diff --git a/src/main/org/apache/tools/ant/taskdefs/condition/IsReference.java b/src/main/org/apache/tools/ant/taskdefs/condition/IsReference.java index 836d437c0..f172849bc 100644 --- a/src/main/org/apache/tools/ant/taskdefs/condition/IsReference.java +++ b/src/main/org/apache/tools/ant/taskdefs/condition/IsReference.java @@ -62,13 +62,13 @@ public class IsReference extends ProjectComponent implements Condition { + "condition"); } - Object o = getProject().getReference(ref.getRefId()); - - if (o == null) { + String key = ref.getRefId(); + if (!getProject().hasReference(key)) { return false; } else if (type == null) { return true; } else { + Object o = getProject().getReference(key); Class typeClass = (Class) getProject().getDataTypeDefinitions().get(type);