From ac456bb17edacc8399a808bbd1f771bd11e130b2 Mon Sep 17 00:00:00 2001 From: Peter Reilly Date: Thu, 30 Nov 2006 21:03:17 +0000 Subject: [PATCH] BZ:41080 xmlproperty multi-values overwrite properties git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@481078 13f79535-47bb-0310-9956-ffa450edef68 --- CONTRIBUTORS | 1 + WHATSNEW | 3 +++ contributors.xml | 4 ++++ src/main/org/apache/tools/ant/taskdefs/XmlProperty.java | 7 +++++-- src/tests/antunit/taskdefs/xmlproperty-test.xml | 7 +++++++ 5 files changed, 20 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 643e5e07c..1e9c53e38 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -7,6 +7,7 @@ Andreas Ames Andreas Mross Andrew Everitt Andrey Urazov +Andy Wood Anil K. Vijendran Anli Shundi Anthony Goubard diff --git a/WHATSNEW b/WHATSNEW index acc8fe6f4..0f6ad59f2 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -31,6 +31,9 @@ Fixed bugs: * Recursive filtering encountered NullPointerExceptions under certain circumstances. Bugzilla 41086. +* XmlProperty overrides previously set property value when handling duplicate + elements. Bugzilla 41080. + Other changes: -------------- diff --git a/contributors.xml b/contributors.xml index 0824884c9..18b55643d 100644 --- a/contributors.xml +++ b/contributors.xml @@ -38,6 +38,10 @@ Andrey Urazov + + Andy + Wood + Anil K. diff --git a/src/main/org/apache/tools/ant/taskdefs/XmlProperty.java b/src/main/org/apache/tools/ant/taskdefs/XmlProperty.java index 26d9ee361..aaec951c1 100644 --- a/src/main/org/apache/tools/ant/taskdefs/XmlProperty.java +++ b/src/main/org/apache/tools/ant/taskdefs/XmlProperty.java @@ -499,10 +499,13 @@ public class XmlProperty extends org.apache.tools.ant.Task { // to allow other properties to reference them. value = (String) addedAttributes.get(name) + "," + value; getProject().setProperty(name, value); - } else { + addedAttributes.put(name, value); + } else if (getProject().getProperty(name) == null) { getProject().setNewProperty(name, value); + addedAttributes.put(name, value); + } else { + log("Override ignored for property " + name, Project.MSG_VERBOSE); } - addedAttributes.put(name, value); if (id != null) { getProject().addReference(id, value); } diff --git a/src/tests/antunit/taskdefs/xmlproperty-test.xml b/src/tests/antunit/taskdefs/xmlproperty-test.xml index c2fa0fa6c..6b1407c54 100644 --- a/src/tests/antunit/taskdefs/xmlproperty-test.xml +++ b/src/tests/antunit/taskdefs/xmlproperty-test.xml @@ -6,5 +6,12 @@ + + + + + + +