peterreilly 2004/05/28 01:21:04
Modified: src/main/org/apache/tools/ant/taskdefs Tag: ANT_16_BRANCH
Definer.java
Log:
sync
Revision Changes Path
No revision
No revision
1.44.2.8 +26 -1 ant/src/main/org/apache/tools/ant/taskdefs/Definer.java
Index: Definer.java
===================================================================
RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/Definer.java,v
retrieving revision 1.44.2.7
retrieving revision 1.44.2.8
diff -u -r1.44.2.7 -r1.44.2.8
--- Definer.java 15 Mar 2004 18:03:56 -0000 1.44.2.7
+++ Definer.java 28 May 2004 08:21:04 -0000 1.44.2.8
@@ -21,7 +21,9 @@
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
+import java.util.ArrayList;
import java.util.Enumeration;
+import java.util.List;
import java.util.Locale;
import java.util.NoSuchElementException;
import java.util.Properties;
@@ -41,6 +43,15 @@
* @since Ant 1.4
*/
public abstract class Definer extends DefBase {
+ private static class ResourceStack extends ThreadLocal {
+ public Object initialValue() {
+ return new ArrayList();
+ }
+ List getStack() {
+ return (List) get();
+ }
+ }
+ private static ResourceStack resourceStack = new ResourceStack();
private String name;
private String classname;
private File file;
@@ -179,6 +190,9 @@
Enumeration/*<URL>*/ urls = null;
if (file != null) {
final URL url = fileToURL();
+ if (url == null) {
+ return;
+ }
urls = new Enumeration() {
private boolean more = true;
public boolean hasMoreElements() {
@@ -209,7 +223,18 @@
loadProperties(al, url);
break;
} else {
- loadAntlib(al, url);
+ if (resourceStack.getStack().contains(url)) {
+ log("Warning: Attempting to recursively load " + url
+ + " at " + getLocation(),
+ Project.MSG_WARN);
+ } else {
+ try {
+ resourceStack.getStack().add(url);
+ loadAntlib(al, url);
+ } finally {
+ resourceStack.getStack().remove(url);
+ }
+ }
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]