From 2201b1634b24e1ab769a1654f46c30eeb71fe990 Mon Sep 17 00:00:00 2001 From: Antoine Levy-Lambert Date: Sat, 28 Oct 2006 22:54:48 +0000 Subject: [PATCH] fix for Bugzilla 40722. Was identified as a directory scanning problem. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@468781 13f79535-47bb-0310-9956-ffa450edef68 --- WHATSNEW | 3 ++ .../tools/ant/types/AbstractFileSet.java | 12 ++++--- .../apache/tools/ant/types/PatternSet.java | 7 ++-- src/tests/antunit/types/fileset-test.xml | 32 +++++++++++++++++++ 4 files changed, 47 insertions(+), 7 deletions(-) create mode 100644 src/tests/antunit/types/fileset-test.xml diff --git a/WHATSNEW b/WHATSNEW index 151d4a371..4baf6f2cb 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -13,6 +13,9 @@ Fixed bugs: * doesnt delete when defaultexcludes="false" and no includes is set fixed. Bugzilla 40313. +* behavior change of DirectoryScanner/AbstractFileset when conditional include + patterns are used. Bugzilla 40722. + Other changes: -------------- diff --git a/src/main/org/apache/tools/ant/types/AbstractFileSet.java b/src/main/org/apache/tools/ant/types/AbstractFileSet.java index ba1edbfec..afbdea99c 100644 --- a/src/main/org/apache/tools/ant/types/AbstractFileSet.java +++ b/src/main/org/apache/tools/ant/types/AbstractFileSet.java @@ -459,12 +459,16 @@ public abstract class AbstractFileSet extends DataType } ds.setBasedir(dir); - PatternSet ps = mergePatterns(p); + final int count = additionalPatterns.size(); + for (int i = 0; i < count; i++) { + Object o = additionalPatterns.elementAt(i); + defaultPatterns.append((PatternSet) o, p); + } p.log(getDataTypeName() + ": Setup scanner in dir " + dir - + " with " + ps, Project.MSG_DEBUG); + + " with " + defaultPatterns, Project.MSG_DEBUG); - ds.setIncludes(ps.getIncludePatterns(p)); - ds.setExcludes(ps.getExcludePatterns(p)); + ds.setIncludes(defaultPatterns.getIncludePatterns(p)); + ds.setExcludes(defaultPatterns.getExcludePatterns(p)); if (ds instanceof SelectorScanner) { SelectorScanner ss = (SelectorScanner) ds; ss.setSelectors(getSelectors(p)); diff --git a/src/main/org/apache/tools/ant/types/PatternSet.java b/src/main/org/apache/tools/ant/types/PatternSet.java index 7d2a8255e..0542be302 100644 --- a/src/main/org/apache/tools/ant/types/PatternSet.java +++ b/src/main/org/apache/tools/ant/types/PatternSet.java @@ -117,11 +117,12 @@ public class PatternSet extends DataType implements Cloneable { * @return a printable form of this object. */ public String toString() { + StringBuffer buf = new StringBuffer(); if (name == null) { - throw new BuildException( - "Missing attribute \"name\" for a pattern"); + buf.append("noname"); + } else { + buf.append(name); } - StringBuffer buf = new StringBuffer(name); if ((ifCond != null) || (unlessCond != null)) { buf.append(":"); String connector = ""; diff --git a/src/tests/antunit/types/fileset-test.xml b/src/tests/antunit/types/fileset-test.xml new file mode 100644 index 000000000..f7d265123 --- /dev/null +++ b/src/tests/antunit/types/fileset-test.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + ${this.xml.prop} + + + + + + + + + +