Return-Path: Delivered-To: apmail-ant-dev-archive@www.apache.org Received: (qmail 40428 invoked from network); 28 May 2004 08:21:39 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 28 May 2004 08:21:39 -0000 Received: (qmail 6380 invoked by uid 500); 28 May 2004 08:21:58 -0000 Delivered-To: apmail-ant-dev-archive@ant.apache.org Received: (qmail 6175 invoked by uid 500); 28 May 2004 08:21:55 -0000 Mailing-List: contact dev-help@ant.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Ant Developers List" Reply-To: "Ant Developers List" Delivered-To: mailing list dev@ant.apache.org Received: (qmail 5832 invoked by uid 500); 28 May 2004 08:21:52 -0000 Received: (qmail 5706 invoked by uid 98); 28 May 2004 08:21:51 -0000 Received: from peterreilly@apache.org by hermes.apache.org by uid 82 with qmail-scanner-1.20 (clamuko: 0.70. Clear:RC:0(209.237.227.194):. Processed in 0.104803 secs); 28 May 2004 08:21:51 -0000 X-Qmail-Scanner-Mail-From: peterreilly@apache.org via hermes.apache.org X-Qmail-Scanner: 1.20 (Clear:RC:0(209.237.227.194):. Processed in 0.104803 secs) Received: from unknown (HELO minotaur.apache.org) (209.237.227.194) by hermes.apache.org with SMTP; 28 May 2004 08:21:51 -0000 Received: (qmail 40065 invoked by uid 1539); 28 May 2004 08:21:04 -0000 Date: 28 May 2004 08:21:04 -0000 Message-ID: <20040528082104.40064.qmail@minotaur.apache.org> From: peterreilly@apache.org To: ant-cvs@apache.org Subject: cvs commit: ant/src/main/org/apache/tools/ant/taskdefs Definer.java X-Spam-Rating: hermes.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N 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/**/ 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: dev-unsubscribe@ant.apache.org For additional commands, e-mail: dev-help@ant.apache.org