Angela Schreiber created SLING-9962:
---------------------------------------

             Summary: 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


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)

Reply via email to