You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2024/01/04 12:52:29 UTC

(sling-org-apache-sling-feature) branch master updated: SLING-12220 : Ensure that metadata properties are always written in the same order

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

cziegeler pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature.git


The following commit(s) were added to refs/heads/master by this push:
     new b1cb1f4  SLING-12220 : Ensure that metadata properties are always written in the same order
b1cb1f4 is described below

commit b1cb1f476a8274d120c09cc6a6a7b25225c0220d
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Thu Jan 4 13:46:43 2024 +0100

    SLING-12220 : Ensure that metadata properties are always written in the same order
---
 src/main/java/org/apache/sling/feature/Artifact.java            | 4 ++--
 src/main/java/org/apache/sling/feature/builder/BuilderUtil.java | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/main/java/org/apache/sling/feature/Artifact.java b/src/main/java/org/apache/sling/feature/Artifact.java
index 4a73d20..32934ff 100644
--- a/src/main/java/org/apache/sling/feature/Artifact.java
+++ b/src/main/java/org/apache/sling/feature/Artifact.java
@@ -18,12 +18,12 @@ package org.apache.sling.feature;
 
 import java.io.Serializable;
 import java.util.Collections;
-import java.util.HashMap;
 import java.util.HashSet;
 import java.util.LinkedHashSet;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
+import java.util.TreeMap;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
@@ -60,7 +60,7 @@ public class Artifact implements Comparable<Artifact>, Serializable {
     private final ArtifactId id;
 
     /** Artifact metadata. */
-    private final Map<String,String> metadata = new HashMap<>();
+    private final Map<String,String> metadata = new TreeMap<>();
 
     /**
      * Construct a new artifact
diff --git a/src/main/java/org/apache/sling/feature/builder/BuilderUtil.java b/src/main/java/org/apache/sling/feature/builder/BuilderUtil.java
index 4d4cdd1..56e35b9 100644
--- a/src/main/java/org/apache/sling/feature/builder/BuilderUtil.java
+++ b/src/main/java/org/apache/sling/feature/builder/BuilderUtil.java
@@ -149,7 +149,7 @@ class BuilderUtil {
             int insertPos = target.size();
             int count = 0;
             for (final Artifact existing : allExistingInTarget) {
-                if (sourceFeature.getId().toMvnId().equals(existing.getMetadata().get(originKey))) {
+                if (originKey != null && sourceFeature.getId().toMvnId().equals(existing.getMetadata().get(originKey))) {
                     // If the source artifact came from the same feature, keep them side-by-side
                     // but make sure we add the target ones first - hence, the count
                     selectedArtifacts.add(count++, existing);