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

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

commit b4a0320545887674dccfa0398b63ef79da09ff84
Author: Robert Munteanu <[email protected]>
AuthorDate: Fri Aug 7 13:44:20 2020 +0200

    SLING-9620 - ResourceMapperImpl.getAllMappings does not respect 
multi-valued sling:alias
    
    Remove extra map() call from PathGenerator.cartesianJoin.
---
 .../sling/resourceresolver/impl/mapping/PathGenerator.java | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/resourceresolver/impl/mapping/PathGenerator.java
 
b/src/main/java/org/apache/sling/resourceresolver/impl/mapping/PathGenerator.java
index 53b298c..7cf86d1 100644
--- 
a/src/main/java/org/apache/sling/resourceresolver/impl/mapping/PathGenerator.java
+++ 
b/src/main/java/org/apache/sling/resourceresolver/impl/mapping/PathGenerator.java
@@ -40,27 +40,23 @@ public class PathGenerator {
     
     private static List<String> cartesianJoin(List<List<String>> segments, 
String toAppend) {
         
-        return cartesianJoin0(0, segments).stream()
-                .map ( sb -> {
-                    if ( toAppend != null )
-                        sb.append(toAppend);
-                    
-                    return sb;
-                })
+        return cartesianJoin0(0, segments, toAppend).stream()
                 .map( StringBuilder::toString )
                 .collect( Collectors.toList() );
     }
     
-    private static List<StringBuilder> cartesianJoin0(int index, 
List<List<String>> segments) {
+    private static List<StringBuilder> cartesianJoin0(int index, 
List<List<String>> segments, String toAppend) {
         List<StringBuilder> out = new ArrayList<>();
         if ( index == segments.size() ) {
             out.add(new StringBuilder("/"));
         } else {
             for ( String segment : segments.get(index) ) {
-                for (StringBuilder sb : cartesianJoin0(index + 1, segments) ) {
+                for (StringBuilder sb : cartesianJoin0(index + 1, segments, 
toAppend) ) {
                     sb.append(segment);
                     if ( index != 0 )
                         sb.append('/');
+                    else if ( toAppend != null )
+                        sb.append(toAppend);
                     out.add(sb);
                 }
             }

Reply via email to