diff --git a/WHATSNEW b/WHATSNEW index 92a708c3b..3b8a0fa3e 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -48,6 +48,8 @@ Fixed bugs: * SQL task did not work with Informix IDS 9.2. Bugzilla Report 27162. +* MacroDef did not allow attributes named 'description'. Bugzilla Report 27175. + Other changes: -------------- diff --git a/src/etc/testcases/taskdefs/macrodef.xml b/src/etc/testcases/taskdefs/macrodef.xml index b8780fa82..b64418c72 100644 --- a/src/etc/testcases/taskdefs/macrodef.xml +++ b/src/etc/testcases/taskdefs/macrodef.xml @@ -156,4 +156,16 @@ + + + + + + + description is @{description} + + + + + diff --git a/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java b/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java index dfc3e9db5..e6634e11c 100644 --- a/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java +++ b/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java @@ -282,6 +282,9 @@ public class MacroInstance extends Task implements DynamicConfigurator { for (Iterator i = macroDef.getAttributes().iterator(); i.hasNext();) { MacroDef.Attribute attribute = (MacroDef.Attribute) i.next(); String value = (String) map.get(attribute.getName()); + if (value == null && "description".equals(attribute.getName())) { + value = getDescription(); + } if (value == null) { value = attribute.getDefault(); value = macroSubs(value, localProperties); diff --git a/src/testcases/org/apache/tools/ant/taskdefs/MacroDefTest.java b/src/testcases/org/apache/tools/ant/taskdefs/MacroDefTest.java index 5bd24d879..dfbdd3998 100644 --- a/src/testcases/org/apache/tools/ant/taskdefs/MacroDefTest.java +++ b/src/testcases/org/apache/tools/ant/taskdefs/MacroDefTest.java @@ -104,5 +104,10 @@ public class MacroDefTest extends BuildFileTest { "escape", "a@b or a@b is avalue@bvalue"); } + public void testAttributeDescription() { + expectLog( + "attribute.description", + "description is hello world"); + } }