You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Bob Wieler (JIRA)" <ji...@apache.org> on 2007/08/01 16:43:54 UTC

[jira] Created: (JCR-1046) Non-versionable children of a versionable node should not be updated when a merge fails

Non-versionable children of a versionable node should not be updated when a merge fails
---------------------------------------------------------------------------------------

                 Key: JCR-1046
                 URL: https://issues.apache.org/jira/browse/JCR-1046
             Project: Jackrabbit
          Issue Type: Bug
          Components: versioning
    Affects Versions: 1.3
            Reporter: Bob Wieler


The JCR specification (JSR-170) includes a merge algorithm that is inconsistent with the functionality described elsewhere in the JCR specification. Specifically from JSR-170 section 8.2.10 Merge:

"In either case, (regardless of whether bestEffort is true or false) for each non-versionable node (including both referenceable and non-referenceable), if the merge result of its nearest versionable ancestor is update, or if it has no versionable ancestor, then it is updated to reflect the state of its corresponding node. Otherwise, it is left unchanged."

The algorithm presented in 8.2.10.1 of the specification goes against the above statement as it does not take into consideration the merge result of the nearest versionable ancestor.

One solution would be to have the doLeave(n) call that dofail(n, v') calls altered to only perform a merge on the versionable children rather than all of the children. The merging of all children (versionable and non-versionable) should only be done if the nearest parent is not in a failed merge state regardless of whether the failure occurred from the current merge operation or a previous merge operation.

I will attach a patch file that makes what I think is the required change.


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (JCR-1046) Non-versionable children of a versionable node should not be updated when a merge fails

Posted by "Bob Wieler (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/JCR-1046?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Bob Wieler updated JCR-1046:
----------------------------

    Attachment:     (was: jcr1046.diff)

> Non-versionable children of a versionable node should not be updated when a merge fails
> ---------------------------------------------------------------------------------------
>
>                 Key: JCR-1046
>                 URL: https://issues.apache.org/jira/browse/JCR-1046
>             Project: Jackrabbit
>          Issue Type: Bug
>          Components: versioning
>    Affects Versions: 1.3
>            Reporter: Bob Wieler
>         Attachments: jcr1046.diff
>
>
> The JCR specification (JSR-170) includes a merge algorithm that is inconsistent with the functionality described elsewhere in the JCR specification. Specifically from JSR-170 section 8.2.10 Merge:
> "In either case, (regardless of whether bestEffort is true or false) for each non-versionable node (including both referenceable and non-referenceable), if the merge result of its nearest versionable ancestor is update, or if it has no versionable ancestor, then it is updated to reflect the state of its corresponding node. Otherwise, it is left unchanged."
> The algorithm presented in 8.2.10.1 of the specification goes against the above statement as it does not take into consideration the merge result of the nearest versionable ancestor.
> One solution would be to have the doLeave(n) call that dofail(n, v') calls altered to only perform a merge on the versionable children rather than all of the children. The merging of all children (versionable and non-versionable) should only be done if the nearest parent is not in a failed merge state regardless of whether the failure occurred from the current merge operation or a previous merge operation.
> I will attach a patch file that makes what I think is the required change.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Reopened: (JCR-1046) Non-versionable children of a versionable node should not be updated when a merge fails

Posted by "Tobias Bocanegra (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/JCR-1046?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tobias Bocanegra reopened JCR-1046:
-----------------------------------


apparently some tests fail:

CRAPITest
   testMergeNodeNonVersionableSubNodeUpdate :
 junit.framework.AssertionFailedError
 junit.framework.AssertionFailedError
       at junit.framework.Assert.fail(Assert.java:47)
       at junit.framework.Assert.assertTrue(Assert.java:20)
       at junit.framework.Assert.assertTrue(Assert.java:27)
       at org.apache.jackrabbit.test.api.version.MergeNonVersionableSubNodeTest.testMergeNodeNonVersionableSubNodeUpdate(MergeNonVersionableSubNodeTest.java:86)

will investigate if tests are wrong or fix.

> Non-versionable children of a versionable node should not be updated when a merge fails
> ---------------------------------------------------------------------------------------
>
>                 Key: JCR-1046
>                 URL: https://issues.apache.org/jira/browse/JCR-1046
>             Project: Jackrabbit
>          Issue Type: Bug
>          Components: versioning
>    Affects Versions: 1.3, 1.3.1, 1.3.3, 1.4, 1.5
>            Reporter: Bob Wieler
>            Assignee: Tobias Bocanegra
>             Fix For: 1.5
>
>         Attachments: jcr1046.diff
>
>
> The JCR specification (JSR-170) includes a merge algorithm that is inconsistent with the functionality described elsewhere in the JCR specification. Specifically from JSR-170 section 8.2.10 Merge:
> "In either case, (regardless of whether bestEffort is true or false) for each non-versionable node (including both referenceable and non-referenceable), if the merge result of its nearest versionable ancestor is update, or if it has no versionable ancestor, then it is updated to reflect the state of its corresponding node. Otherwise, it is left unchanged."
> The algorithm presented in 8.2.10.1 of the specification goes against the above statement as it does not take into consideration the merge result of the nearest versionable ancestor.
> One solution would be to have the doLeave(n) call that dofail(n, v') calls altered to only perform a merge on the versionable children rather than all of the children. The merging of all children (versionable and non-versionable) should only be done if the nearest parent is not in a failed merge state regardless of whether the failure occurred from the current merge operation or a previous merge operation.
> I will attach a patch file that makes what I think is the required change.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (JCR-1046) Non-versionable children of a versionable node should not be updated when a merge fails

Posted by "Tobias Bocanegra (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/JCR-1046?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12559687#action_12559687 ] 

Tobias Bocanegra commented on JCR-1046:
---------------------------------------

yes, i think your (latest) patch is correct. thanks for finding this!

> Non-versionable children of a versionable node should not be updated when a merge fails
> ---------------------------------------------------------------------------------------
>
>                 Key: JCR-1046
>                 URL: https://issues.apache.org/jira/browse/JCR-1046
>             Project: Jackrabbit
>          Issue Type: Bug
>          Components: versioning
>    Affects Versions: 1.3
>            Reporter: Bob Wieler
>            Assignee: Tobias Bocanegra
>         Attachments: jcr1046.diff
>
>
> The JCR specification (JSR-170) includes a merge algorithm that is inconsistent with the functionality described elsewhere in the JCR specification. Specifically from JSR-170 section 8.2.10 Merge:
> "In either case, (regardless of whether bestEffort is true or false) for each non-versionable node (including both referenceable and non-referenceable), if the merge result of its nearest versionable ancestor is update, or if it has no versionable ancestor, then it is updated to reflect the state of its corresponding node. Otherwise, it is left unchanged."
> The algorithm presented in 8.2.10.1 of the specification goes against the above statement as it does not take into consideration the merge result of the nearest versionable ancestor.
> One solution would be to have the doLeave(n) call that dofail(n, v') calls altered to only perform a merge on the versionable children rather than all of the children. The merging of all children (versionable and non-versionable) should only be done if the nearest parent is not in a failed merge state regardless of whether the failure occurred from the current merge operation or a previous merge operation.
> I will attach a patch file that makes what I think is the required change.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (JCR-1046) Non-versionable children of a versionable node should not be updated when a merge fails

Posted by "Bob Wieler (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/JCR-1046?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Bob Wieler updated JCR-1046:
----------------------------

    Attachment: jcr1046.diff

Proposed fix for this issue. This is a diff from the trunk branch of jackrabbit (1.4-snapshot).

> Non-versionable children of a versionable node should not be updated when a merge fails
> ---------------------------------------------------------------------------------------
>
>                 Key: JCR-1046
>                 URL: https://issues.apache.org/jira/browse/JCR-1046
>             Project: Jackrabbit
>          Issue Type: Bug
>          Components: versioning
>    Affects Versions: 1.3
>            Reporter: Bob Wieler
>         Attachments: jcr1046.diff
>
>
> The JCR specification (JSR-170) includes a merge algorithm that is inconsistent with the functionality described elsewhere in the JCR specification. Specifically from JSR-170 section 8.2.10 Merge:
> "In either case, (regardless of whether bestEffort is true or false) for each non-versionable node (including both referenceable and non-referenceable), if the merge result of its nearest versionable ancestor is update, or if it has no versionable ancestor, then it is updated to reflect the state of its corresponding node. Otherwise, it is left unchanged."
> The algorithm presented in 8.2.10.1 of the specification goes against the above statement as it does not take into consideration the merge result of the nearest versionable ancestor.
> One solution would be to have the doLeave(n) call that dofail(n, v') calls altered to only perform a merge on the versionable children rather than all of the children. The merging of all children (versionable and non-versionable) should only be done if the nearest parent is not in a failed merge state regardless of whether the failure occurred from the current merge operation or a previous merge operation.
> I will attach a patch file that makes what I think is the required change.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Assigned: (JCR-1046) Non-versionable children of a versionable node should not be updated when a merge fails

Posted by "Tobias Bocanegra (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/JCR-1046?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tobias Bocanegra reassigned JCR-1046:
-------------------------------------

    Assignee: Tobias Bocanegra

> Non-versionable children of a versionable node should not be updated when a merge fails
> ---------------------------------------------------------------------------------------
>
>                 Key: JCR-1046
>                 URL: https://issues.apache.org/jira/browse/JCR-1046
>             Project: Jackrabbit
>          Issue Type: Bug
>          Components: versioning
>    Affects Versions: 1.3
>            Reporter: Bob Wieler
>            Assignee: Tobias Bocanegra
>         Attachments: jcr1046.diff
>
>
> The JCR specification (JSR-170) includes a merge algorithm that is inconsistent with the functionality described elsewhere in the JCR specification. Specifically from JSR-170 section 8.2.10 Merge:
> "In either case, (regardless of whether bestEffort is true or false) for each non-versionable node (including both referenceable and non-referenceable), if the merge result of its nearest versionable ancestor is update, or if it has no versionable ancestor, then it is updated to reflect the state of its corresponding node. Otherwise, it is left unchanged."
> The algorithm presented in 8.2.10.1 of the specification goes against the above statement as it does not take into consideration the merge result of the nearest versionable ancestor.
> One solution would be to have the doLeave(n) call that dofail(n, v') calls altered to only perform a merge on the versionable children rather than all of the children. The merging of all children (versionable and non-versionable) should only be done if the nearest parent is not in a failed merge state regardless of whether the failure occurred from the current merge operation or a previous merge operation.
> I will attach a patch file that makes what I think is the required change.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (JCR-1046) Non-versionable children of a versionable node should not be updated when a merge fails

Posted by "Jukka Zitting (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/JCR-1046?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12565682#action_12565682 ] 

Jukka Zitting commented on JCR-1046:
------------------------------------

Merged to the 1.4 branch in revision 618599.

> Non-versionable children of a versionable node should not be updated when a merge fails
> ---------------------------------------------------------------------------------------
>
>                 Key: JCR-1046
>                 URL: https://issues.apache.org/jira/browse/JCR-1046
>             Project: Jackrabbit
>          Issue Type: Bug
>          Components: versioning
>    Affects Versions: 1.3, 1.3.1, 1.3.3, 1.4
>            Reporter: Bob Wieler
>            Assignee: Tobias Bocanegra
>             Fix For: 1.4.1
>
>         Attachments: jcr1046.diff
>
>
> The JCR specification (JSR-170) includes a merge algorithm that is inconsistent with the functionality described elsewhere in the JCR specification. Specifically from JSR-170 section 8.2.10 Merge:
> "In either case, (regardless of whether bestEffort is true or false) for each non-versionable node (including both referenceable and non-referenceable), if the merge result of its nearest versionable ancestor is update, or if it has no versionable ancestor, then it is updated to reflect the state of its corresponding node. Otherwise, it is left unchanged."
> The algorithm presented in 8.2.10.1 of the specification goes against the above statement as it does not take into consideration the merge result of the nearest versionable ancestor.
> One solution would be to have the doLeave(n) call that dofail(n, v') calls altered to only perform a merge on the versionable children rather than all of the children. The merging of all children (versionable and non-versionable) should only be done if the nearest parent is not in a failed merge state regardless of whether the failure occurred from the current merge operation or a previous merge operation.
> I will attach a patch file that makes what I think is the required change.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (JCR-1046) Non-versionable children of a versionable node should not be updated when a merge fails

Posted by "Jukka Zitting (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/JCR-1046?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jukka Zitting updated JCR-1046:
-------------------------------

    Affects Version/s:     (was: 1.5)
        Fix Version/s:     (was: 1.5)
                       1.4.1

> Non-versionable children of a versionable node should not be updated when a merge fails
> ---------------------------------------------------------------------------------------
>
>                 Key: JCR-1046
>                 URL: https://issues.apache.org/jira/browse/JCR-1046
>             Project: Jackrabbit
>          Issue Type: Bug
>          Components: versioning
>    Affects Versions: 1.3, 1.3.1, 1.3.3, 1.4
>            Reporter: Bob Wieler
>            Assignee: Tobias Bocanegra
>             Fix For: 1.4.1
>
>         Attachments: jcr1046.diff
>
>
> The JCR specification (JSR-170) includes a merge algorithm that is inconsistent with the functionality described elsewhere in the JCR specification. Specifically from JSR-170 section 8.2.10 Merge:
> "In either case, (regardless of whether bestEffort is true or false) for each non-versionable node (including both referenceable and non-referenceable), if the merge result of its nearest versionable ancestor is update, or if it has no versionable ancestor, then it is updated to reflect the state of its corresponding node. Otherwise, it is left unchanged."
> The algorithm presented in 8.2.10.1 of the specification goes against the above statement as it does not take into consideration the merge result of the nearest versionable ancestor.
> One solution would be to have the doLeave(n) call that dofail(n, v') calls altered to only perform a merge on the versionable children rather than all of the children. The merging of all children (versionable and non-versionable) should only be done if the nearest parent is not in a failed merge state regardless of whether the failure occurred from the current merge operation or a previous merge operation.
> I will attach a patch file that makes what I think is the required change.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (JCR-1046) Non-versionable children of a versionable node should not be updated when a merge fails

Posted by "Bob Wieler (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/JCR-1046?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Bob Wieler updated JCR-1046:
----------------------------

    Attachment: jcr1046.diff

Updated patch.

> Non-versionable children of a versionable node should not be updated when a merge fails
> ---------------------------------------------------------------------------------------
>
>                 Key: JCR-1046
>                 URL: https://issues.apache.org/jira/browse/JCR-1046
>             Project: Jackrabbit
>          Issue Type: Bug
>          Components: versioning
>    Affects Versions: 1.3
>            Reporter: Bob Wieler
>         Attachments: jcr1046.diff
>
>
> The JCR specification (JSR-170) includes a merge algorithm that is inconsistent with the functionality described elsewhere in the JCR specification. Specifically from JSR-170 section 8.2.10 Merge:
> "In either case, (regardless of whether bestEffort is true or false) for each non-versionable node (including both referenceable and non-referenceable), if the merge result of its nearest versionable ancestor is update, or if it has no versionable ancestor, then it is updated to reflect the state of its corresponding node. Otherwise, it is left unchanged."
> The algorithm presented in 8.2.10.1 of the specification goes against the above statement as it does not take into consideration the merge result of the nearest versionable ancestor.
> One solution would be to have the doLeave(n) call that dofail(n, v') calls altered to only perform a merge on the versionable children rather than all of the children. The merging of all children (versionable and non-versionable) should only be done if the nearest parent is not in a failed merge state regardless of whether the failure occurred from the current merge operation or a previous merge operation.
> I will attach a patch file that makes what I think is the required change.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (JCR-1046) Non-versionable children of a versionable node should not be updated when a merge fails

Posted by "Bob Wieler (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/JCR-1046?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12559668#action_12559668 ] 

Bob Wieler commented on JCR-1046:
---------------------------------

The fix I supplied for this should actually only merge non-versionable children if the result of the merge is a fail or a leave, not just if it is a failure. Otherwise, non-versionable children will always be merged regardless of the merge status of the nearest versionable parent.

I will update the attached diff with a different proposed fixed. More information on this issue can be found in JCR-1314.


> Non-versionable children of a versionable node should not be updated when a merge fails
> ---------------------------------------------------------------------------------------
>
>                 Key: JCR-1046
>                 URL: https://issues.apache.org/jira/browse/JCR-1046
>             Project: Jackrabbit
>          Issue Type: Bug
>          Components: versioning
>    Affects Versions: 1.3
>            Reporter: Bob Wieler
>         Attachments: jcr1046.diff
>
>
> The JCR specification (JSR-170) includes a merge algorithm that is inconsistent with the functionality described elsewhere in the JCR specification. Specifically from JSR-170 section 8.2.10 Merge:
> "In either case, (regardless of whether bestEffort is true or false) for each non-versionable node (including both referenceable and non-referenceable), if the merge result of its nearest versionable ancestor is update, or if it has no versionable ancestor, then it is updated to reflect the state of its corresponding node. Otherwise, it is left unchanged."
> The algorithm presented in 8.2.10.1 of the specification goes against the above statement as it does not take into consideration the merge result of the nearest versionable ancestor.
> One solution would be to have the doLeave(n) call that dofail(n, v') calls altered to only perform a merge on the versionable children rather than all of the children. The merging of all children (versionable and non-versionable) should only be done if the nearest parent is not in a failed merge state regardless of whether the failure occurred from the current merge operation or a previous merge operation.
> I will attach a patch file that makes what I think is the required change.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (JCR-1046) Non-versionable children of a versionable node should not be updated when a merge fails

Posted by "Tobias Bocanegra (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/JCR-1046?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tobias Bocanegra resolved JCR-1046.
-----------------------------------

       Resolution: Fixed
    Fix Version/s: 1.5

fixed as proposed.

> Non-versionable children of a versionable node should not be updated when a merge fails
> ---------------------------------------------------------------------------------------
>
>                 Key: JCR-1046
>                 URL: https://issues.apache.org/jira/browse/JCR-1046
>             Project: Jackrabbit
>          Issue Type: Bug
>          Components: versioning
>    Affects Versions: 1.3, 1.3.1, 1.3.3, 1.4, 1.5
>            Reporter: Bob Wieler
>            Assignee: Tobias Bocanegra
>             Fix For: 1.5
>
>         Attachments: jcr1046.diff
>
>
> The JCR specification (JSR-170) includes a merge algorithm that is inconsistent with the functionality described elsewhere in the JCR specification. Specifically from JSR-170 section 8.2.10 Merge:
> "In either case, (regardless of whether bestEffort is true or false) for each non-versionable node (including both referenceable and non-referenceable), if the merge result of its nearest versionable ancestor is update, or if it has no versionable ancestor, then it is updated to reflect the state of its corresponding node. Otherwise, it is left unchanged."
> The algorithm presented in 8.2.10.1 of the specification goes against the above statement as it does not take into consideration the merge result of the nearest versionable ancestor.
> One solution would be to have the doLeave(n) call that dofail(n, v') calls altered to only perform a merge on the versionable children rather than all of the children. The merging of all children (versionable and non-versionable) should only be done if the nearest parent is not in a failed merge state regardless of whether the failure occurred from the current merge operation or a previous merge operation.
> I will attach a patch file that makes what I think is the required change.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (JCR-1046) Non-versionable children of a versionable node should not be updated when a merge fails

Posted by "Tobias Bocanegra (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/JCR-1046?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tobias Bocanegra resolved JCR-1046.
-----------------------------------

    Resolution: Fixed

fixed the failing tests (which were wrong and partially commented out!)

> Non-versionable children of a versionable node should not be updated when a merge fails
> ---------------------------------------------------------------------------------------
>
>                 Key: JCR-1046
>                 URL: https://issues.apache.org/jira/browse/JCR-1046
>             Project: Jackrabbit
>          Issue Type: Bug
>          Components: versioning
>    Affects Versions: 1.3, 1.3.1, 1.3.3, 1.4, 1.5
>            Reporter: Bob Wieler
>            Assignee: Tobias Bocanegra
>             Fix For: 1.5
>
>         Attachments: jcr1046.diff
>
>
> The JCR specification (JSR-170) includes a merge algorithm that is inconsistent with the functionality described elsewhere in the JCR specification. Specifically from JSR-170 section 8.2.10 Merge:
> "In either case, (regardless of whether bestEffort is true or false) for each non-versionable node (including both referenceable and non-referenceable), if the merge result of its nearest versionable ancestor is update, or if it has no versionable ancestor, then it is updated to reflect the state of its corresponding node. Otherwise, it is left unchanged."
> The algorithm presented in 8.2.10.1 of the specification goes against the above statement as it does not take into consideration the merge result of the nearest versionable ancestor.
> One solution would be to have the doLeave(n) call that dofail(n, v') calls altered to only perform a merge on the versionable children rather than all of the children. The merging of all children (versionable and non-versionable) should only be done if the nearest parent is not in a failed merge state regardless of whether the failure occurred from the current merge operation or a previous merge operation.
> I will attach a patch file that makes what I think is the required change.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (JCR-1046) Non-versionable children of a versionable node should not be updated when a merge fails

Posted by "Tobias Bocanegra (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/JCR-1046?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tobias Bocanegra updated JCR-1046:
----------------------------------

    Affects Version/s: 1.5
                       1.3.1
                       1.3.3
                       1.4

> Non-versionable children of a versionable node should not be updated when a merge fails
> ---------------------------------------------------------------------------------------
>
>                 Key: JCR-1046
>                 URL: https://issues.apache.org/jira/browse/JCR-1046
>             Project: Jackrabbit
>          Issue Type: Bug
>          Components: versioning
>    Affects Versions: 1.3, 1.3.1, 1.3.3, 1.4, 1.5
>            Reporter: Bob Wieler
>            Assignee: Tobias Bocanegra
>             Fix For: 1.5
>
>         Attachments: jcr1046.diff
>
>
> The JCR specification (JSR-170) includes a merge algorithm that is inconsistent with the functionality described elsewhere in the JCR specification. Specifically from JSR-170 section 8.2.10 Merge:
> "In either case, (regardless of whether bestEffort is true or false) for each non-versionable node (including both referenceable and non-referenceable), if the merge result of its nearest versionable ancestor is update, or if it has no versionable ancestor, then it is updated to reflect the state of its corresponding node. Otherwise, it is left unchanged."
> The algorithm presented in 8.2.10.1 of the specification goes against the above statement as it does not take into consideration the merge result of the nearest versionable ancestor.
> One solution would be to have the doLeave(n) call that dofail(n, v') calls altered to only perform a merge on the versionable children rather than all of the children. The merging of all children (versionable and non-versionable) should only be done if the nearest parent is not in a failed merge state regardless of whether the failure occurred from the current merge operation or a previous merge operation.
> I will attach a patch file that makes what I think is the required change.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.