[ https://issues.apache.org/jira/browse/SLING-9962?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Karl Pauls closed SLING-9962. ----------------------------- > DefaultAclManager#addPaths prone to causing ConstraintViolationException > ------------------------------------------------------------------------ > > Key: SLING-9962 > URL: https://issues.apache.org/jira/browse/SLING-9962 > Project: Sling > Issue Type: Bug > Components: Content-Package to Feature Model Converter > Reporter: Angela Schreiber > Assignee: Karl Pauls > Priority: Major > Fix For: Content-Package to Feature Model Converter 1.1.0 > > > As discussed in SLING-9961 I suspect that {{DefaultAclManager.addPaths}} is > prone to cause {{ConstraintViolationException}} for the following reason: > - method {{computePathType}} returns a default type (in this case > _sling:Folder_) if no primary type can be detected from the content package, > without verifying if that node type was legal at the target destination. > - method {{addPaths}} generates the following repo-init statements: > {{formatter.format("create path (%s) %s%n", type, path)}} thus attempting to > create all intermediate paths with the same primary type. > as far as i know Jackrabbit fVault content packages may leave out definitions > of intermediate nodes if those are known to already exist (or be created by > another package) and only start adding _.content.xml_ for those nodes that > actually need to be created. > i haven't tested it but IMO, the converter should refrain from using a > default primary type if the content package doesn't define it. instead it > should probably generated repo-init statements as follows or (alternatively) > omit paths for which the content packages doesn't allow to unambiguously > create the right content structure. > {code} > formatter.format("create path %s(%s) %n", path, type) > {code} > also creation of intermediate paths could be simplified by using the > following repo-init structure, that allows to specify the type of each node > in the hierarchy to be created: > {code} > create path /content/subtree(nt:unstructured)/example.com(sling:Folder mixin > mix:referenceable) > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)