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]