[ 
https://issues.apache.org/jira/browse/JCR-2740?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Thomas Mueller resolved JCR-2740.
---------------------------------

    Resolution: Fixed

> On missing child node, automatically remove the entry (when a session 
> attribute is set)
> ---------------------------------------------------------------------------------------
>
>                 Key: JCR-2740
>                 URL: https://issues.apache.org/jira/browse/JCR-2740
>             Project: Jackrabbit Content Repository
>          Issue Type: New Feature
>          Components: jackrabbit-core
>            Reporter: Thomas Mueller
>            Assignee: Thomas Mueller
>             Fix For: 2.2.0
>
>         Attachments: jcr-2740-b.patch, jcr-2740-c.patch, JCR-2740-d.patch, 
> jcr-2740.patch
>
>
> If a node points to a non-existing child node (which is a repository 
> inconsistency), currently this child node is silently ignored for read 
> operations (as far as I can tell). However, when trying to add another child 
> node with the same name, an exception is thrown with a message saying a child 
> node with this name already exists. Also, the parent node can't be removed.
> One solution is to remove the bad child node entry, but only if the session 
> attribute "org.apache.jackrabbit.autoFixCorruptions" is set (so by default 
> the repository is not changed 'secretly'):
>     SimpleCredentials cred = new SimpleCredentials(...);
>     cred.setAttribute("org.apache.jackrabbit.autoFixCorruptions", "true");
>     rep.login(cred);
> It's not a perfect solution, but it might be better than throwing an 
> exception and basically preventing changes.
> Another solution (not implemented) would be to rename the missing child node 
> entry when trying to add a child node with the same name (for example add the 
> current date/time, or a random digit until there is no conflict), and then 
> continue with adding the new child node.

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

Reply via email to