[ 
https://issues.apache.org/jira/browse/JCRVLT-598?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17552666#comment-17552666
 ] 

Julian Reschke commented on JCRVLT-598:
---------------------------------------

sample log output:
{noformat}
10:45:41.239 [main] WARN  o.a.j.v.fs.impl.io.DocViewImporter - Node Collision: 
To-be imported node /tmp/sameparentconflicts/referenceable uses a node 
identifier Optional[352c89a4-304f-4b87-9bed-e09275597df1] which is already 
taken by /tmp/sameparentconflicts/referenceable-outsidepackage, trying to 
resolve conflict according to policy LEGACY
10:45:41.239 [main] WARN  o.a.j.v.fs.impl.io.DocViewImporter - Existing 
conflicting node /tmp/sameparentconflicts/referenceable-outsidepackage has same 
parent as to-be imported one and is not contained in the filter, ignoring new 
node but continue with children below existing conflicting node
10:45:41.240 [main] INFO  o.a.j.v.p.i.IntegrationTestBase - - 
/tmp/sameparentconflicts/referenceable-outsidepackage
10:45:41.241 [main] WARN  o.a.j.v.fs.impl.io.DocViewImporter - Node Collision: 
To-be imported node /tmp/sameparentconflicts/duplicate uses a node identifier 
Optional[352c89a4-304f-4b87-9bed-e09275597df1] which is already taken by 
/tmp/sameparentconflicts/referenceable-outsidepackage, trying to resolve 
conflict according to policy LEGACY
10:45:41.241 [main] WARN  o.a.j.v.fs.impl.io.DocViewImporter - Existing 
conflicting node /tmp/sameparentconflicts/referenceable-outsidepackage has same 
parent as to-be imported one and is not contained in the filter, ignoring new 
node but continue with children below existing conflicting node
10:45:41.241 [main] INFO  o.a.j.v.p.i.IntegrationTestBase - - 
/tmp/sameparentconflicts/referenceable-outsidepackage
10:45:41.242 [main] INFO  o.a.j.v.p.i.IntegrationTestBase - - 
/tmp/differentparentconflicts
10:45:41.246 [main] INFO  o.a.j.v.p.i.IntegrationTestBase - - 
/tmp/differentparentconflicts/referenceable
10:45:41.246 [main] INFO  o.a.j.v.p.i.IntegrationTestBase - - 
/tmp/differentparentconflicts/referenceable/child
10:45:41.247 [main] WARN  o.a.j.v.fs.impl.io.DocViewImporter - Node Collision: 
To-be imported node /tmp/differentparentconflicts/duplicate/child uses a node 
identifier Optional[a201bd6b-25b9-4255-b7db-6fc4c3ddb32d] which is already 
taken by /tmp/differentparentconflicts/referenceable/child, trying to resolve 
conflict according to policy LEGACY
10:45:41.247 [main] WARN  o.a.j.v.fs.impl.io.DocViewImporter - To-be imported 
node and existing conflicting node have different parents. Will create new 
identifier for the former. (/tmp/differentparentconflicts/duplicate/child)
10:45:41.248 [main] INFO  o.a.j.v.p.i.IntegrationTestBase - - 
/tmp/differentparentconflicts/duplicate
10:45:41.248 [main] INFO  o.a.j.v.p.i.IntegrationTestBase - - 
/tmp/differentparentconflicts/duplicate/child
{noformat}


> need IdConflictPolicy compatible with 3.5.0 behavior
> ----------------------------------------------------
>
>                 Key: JCRVLT-598
>                 URL: https://issues.apache.org/jira/browse/JCRVLT-598
>             Project: Jackrabbit FileVault
>          Issue Type: Sub-task
>          Components: vlt
>    Affects Versions: 3.5.8
>            Reporter: Julian Reschke
>            Assignee: Konrad Windszus
>            Priority: Major
>         Attachments: test-duplicate-referencable-on-child-element-only.zip, 
> test-referenceable.zip
>
>
> Currently, according to the documentation 
> ([https://jackrabbit.apache.org/filevault/referenceablenodes.html]), 
> "IdConflictPolicy.FORCE_REMOVE_CONFLICTING_ID" is supposed to behave as 3.5.0 
> did.
> My tests show however that in 3.5.0, when importing a package with two nodes 
> with conflicting UUIDs, both nodes were imported (and one of the UUIDs 
> changed).
> Update: It turned out that this is only the conflict handling for non-sibling 
> nodes, for sibling nodes the behaviour depends on whether the existing 
> conflicting node is contained in the filter or not. If it is contained the 
> to-be imported node just replaced the conflicting node, if it is not 
> contained, the to-be imported node is just skipped!
> From that point of view, CREATE_NEW_ID seems to be closer (but that one 
> assigns new UUIDs to *both* nodes).
> -Proposal: adjust CREATE_NEW_ID behavior to keep assigning a new UUID only 
> when needed (thus preserving it for one of the nodes), and document *that* 
> mode as compatible to 3.5.0.-
> Updated Proposal: Create new IdConflictPolicy.LEGACY which removes 
> conflicting nodes in case they are siblings (i.e. share the same parent 
> node), otherwise will create a new ID for the to be imported referencable node



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to