This is an automated email from the ASF dual-hosted git repository.

gnodet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven.git

commit 97518b5b2973a6ff74dec8be663ea882e4d6a873
Author: Guillaume Nodet <gno...@gmail.com>
AuthorDate: Tue Apr 2 15:05:57 2024 +0200

    Do not recreate nodes if merge does nothing
---
 .../main/java/org/apache/maven/internal/xml/XmlNodeImpl.java  | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git 
a/maven-xml-impl/src/main/java/org/apache/maven/internal/xml/XmlNodeImpl.java 
b/maven-xml-impl/src/main/java/org/apache/maven/internal/xml/XmlNodeImpl.java
index 0be92e9369..074b2ee5d1 100644
--- 
a/maven-xml-impl/src/main/java/org/apache/maven/internal/xml/XmlNodeImpl.java
+++ 
b/maven-xml-impl/src/main/java/org/apache/maven/internal/xml/XmlNodeImpl.java
@@ -357,8 +357,15 @@ public class XmlNodeImpl implements Serializable, XmlNode {
                 if (children == null) {
                     children = dominant.getChildren();
                 }
-                return new XmlNodeImpl(
-                        dominant.getName(), value != null ? value : 
dominant.getValue(), attrs, children, location);
+                if (!Objects.equals(value, dominant.getValue())
+                        || !Objects.equals(attrs, dominant.getAttributes())
+                        || !Objects.equals(children, dominant.getChildren())
+                        || !Objects.equals(location, 
dominant.getInputLocation())) {
+                    return new XmlNodeImpl(
+                            dominant.getName(), value != null ? value : 
dominant.getValue(), attrs, children, location);
+                } else {
+                    return dominant;
+                }
             }
         }
         return dominant;

Reply via email to