Author: peterreilly
Date: Fri Sep 7 03:53:04 2007
New Revision: 573539
URL: http://svn.apache.org/viewvc?rev=573539&view=rev
Log:
sync the fix
Modified:
ant/core/branches/ANT_17_BRANCH/WHATSNEW
ant/core/branches/ANT_17_BRANCH/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java
Modified: ant/core/branches/ANT_17_BRANCH/WHATSNEW
URL:
http://svn.apache.org/viewvc/ant/core/branches/ANT_17_BRANCH/WHATSNEW?rev=573539&r1=573538&r2=573539&view=diff
==============================================================================
--- ant/core/branches/ANT_17_BRANCH/WHATSNEW (original)
+++ ant/core/branches/ANT_17_BRANCH/WHATSNEW Fri Sep 7 03:53:04 2007
@@ -117,6 +117,9 @@
* FilterMapper could throw an NPE.
Bugzilla 43292.
+* Regession nested macrodefs with elements could cause StackOverFlow.
+ Bugzilla 43324.
+
Other changes:
--------------
* <script> now has basic support for JavaFX scripts
Modified:
ant/core/branches/ANT_17_BRANCH/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java
URL:
http://svn.apache.org/viewvc/ant/core/branches/ANT_17_BRANCH/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java?rev=573539&r1=573538&r2=573539&view=diff
==============================================================================
---
ant/core/branches/ANT_17_BRANCH/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java
(original)
+++
ant/core/branches/ANT_17_BRANCH/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java
Fri Sep 7 03:53:04 2007
@@ -242,7 +242,7 @@
this.text = text;
}
- private UnknownElement copy(UnknownElement ue) {
+ private UnknownElement copy(UnknownElement ue, boolean nested) {
UnknownElement ret = new UnknownElement(ue.getTag());
ret.setNamespace(ue.getNamespace());
ret.setProject(getProject());
@@ -281,8 +281,8 @@
}
MacroDef.TemplateElement templateElement =
(MacroDef.TemplateElement) getNsElements().get(tag);
- if (templateElement == null) {
- UnknownElement child = copy(unknownElement);
+ if (templateElement == null || nested) {
+ UnknownElement child = copy(unknownElement, nested);
rc.addChild(child.getWrapper());
ret.addChild(child);
} else if (templateElement.isImplicit()) {
@@ -293,7 +293,8 @@
}
for (Iterator i = unknownElements.iterator();
i.hasNext();) {
- UnknownElement child = copy((UnknownElement) i.next());
+ UnknownElement child
+ = copy((UnknownElement) i.next(), true);
rc.addChild(child.getWrapper());
ret.addChild(child);
}
@@ -317,7 +318,8 @@
if (list != null) {
for (Iterator i = list.iterator();
i.hasNext();) {
- UnknownElement child = copy((UnknownElement) i.next());
+ UnknownElement child
+ = copy((UnknownElement) i.next(), true);
rc.addChild(child.getWrapper());
ret.addChild(child);
}
@@ -386,7 +388,7 @@
}
// need to set the project on unknown element
- UnknownElement c = copy(macroDef.getNestedTask());
+ UnknownElement c = copy(macroDef.getNestedTask(), false);
c.init();
try {
c.perform();
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]