jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thomas Mueller (JIRA)" <j...@apache.org>
Subject [jira] Updated: (JCR-2740) On missing child node, automatically remove the entry
Date Tue, 30 Nov 2010 16:06:12 GMT

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

Thomas Mueller updated JCR-2740:
--------------------------------

    Description: 
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 a session attribute is set
(so by default the repository is not changed 'secretly').

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.



  was:
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.

I suggest to rename the missing child node entry in that case (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. I wouldn't automatically remove the bad entry, because the node might "appear"
later (after a restore), and because removing data from the repository seems wrong.

It's not a perfect solution, but it might be better than throwing an exception and basically
preventing changes.

        Summary: On missing child node, automatically remove the entry  (was: On missing child
node, automatically rename entry when trying to add a node with the same name)

> On missing child node, automatically remove the entry
> -----------------------------------------------------
>
>                 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
>         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 a session attribute is
set (so by default the repository is not changed 'secretly').
> 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.


Mime
View raw message