SLING-8529 - Avoid flattening of subpackages during convertion in
featuremodel

fixed directories path type detection
diff --git a/src/main/java/org/apache/sling/feature/cpconverter/acl/DefaultAclManager.java b/src/main/java/org/apache/sling/feature/cpconverter/acl/DefaultAclManager.java
index 0c9fd5d..79d8556 100644
--- a/src/main/java/org/apache/sling/feature/cpconverter/acl/DefaultAclManager.java
+++ b/src/main/java/org/apache/sling/feature/cpconverter/acl/DefaultAclManager.java
@@ -191,33 +191,33 @@
             addPath(authorization.getPath(), paths);
         }
 
-        Set<Path> visitedPaths = new HashSet<>();
+        for (Path path : paths) {
+            String type = computePathType(path, packageAssemblers);
+
+            formatter.format("create path (%s) %s%n", type, path);
+        }
+    }
+
+    private static String computePathType(Path path, List<VaultPackageAssembler> packageAssemblers) {
         for (VaultPackageAssembler packageAssembler: packageAssemblers) {
-            for (Path path : paths) {
-                if (!visitedPaths.add(path)) {
-                    continue;
-                }
+            File currentDir = packageAssembler.getEntry(path.toString());
 
-                File currentDir = packageAssembler.getEntry(path.toString());
-                String type = DEFAULT_TYPE;
-
-                if (currentDir.exists()) {
-                    File currentContent = new File(currentDir, CONTENT_XML_FILE_NAME);
-                    if (currentContent.exists()) {
-                        try (FileInputStream input = new FileInputStream(currentContent)) {
-                            type = new PrimaryTypeParser(DEFAULT_TYPE).parse(input);
-                        } catch (Exception e) {
-                            throw new RuntimeException("A fatal error occurred while parsing the '"
-                                + currentContent
-                                + "' file, see nested exceptions: "
-                                + e);
-                        }
+            if (currentDir.exists()) {
+                File currentContent = new File(currentDir, CONTENT_XML_FILE_NAME);
+                if (currentContent.exists()) {
+                    try (FileInputStream input = new FileInputStream(currentContent)) {
+                        return new PrimaryTypeParser(DEFAULT_TYPE).parse(input);
+                    } catch (Exception e) {
+                        throw new RuntimeException("A fatal error occurred while parsing the '"
+                            + currentContent
+                            + "' file, see nested exceptions: "
+                            + e);
                     }
                 }
-
-                formatter.format("create path (%s) %s%n", type, path);
             }
         }
+
+        return DEFAULT_TYPE;
     }
 
     private static void addAclStatement(Formatter formatter, String systemUser, List<Acl> authorizations) {