You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Jukka Zitting (JIRA)" <ji...@apache.org> on 2014/02/19 15:22:22 UTC

[jira] [Resolved] (OAK-1431) Handling of empty or invalid names

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

Jukka Zitting resolved OAK-1431.
--------------------------------

       Resolution: Fixed
    Fix Version/s: 0.18
         Assignee: Jukka Zitting

The {{NodeState}} and {{NodeBuilder}} interfaces now enforce simple validity rules on names (must be non-empty, can't contain any forwards slash characters). More complex naming rules can be handled elsewhere.

> Handling of empty or invalid names
> ----------------------------------
>
>                 Key: OAK-1431
>                 URL: https://issues.apache.org/jira/browse/OAK-1431
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: core
>            Reporter: Jukka Zitting
>            Assignee: Jukka Zitting
>             Fix For: 0.18
>
>
> The {{NodeState.getChildNode()}} says the following about the name argument:
> bq. The name is an opaque string and is not parsed or otherwise interpreted by this method.
> This causes some confusion higher up the stack, for example the following code produces an unexpected result:
> {code}
> Root root = ...;
> Tree a = root.getTree("/");
> Tree b = root.getTree("/").getChild("");
> assert a.exists() && !b.exists() && a.getPath().equals(b.getPath()); // !
> {code}
> To avoid such confusion, I'd outlaw such potentially troublesome cases like empty names or names containing a forward slash all the way down at the NodeState level. The {{getChildNode()}} method could say something like this:
> bq. Names that are empty or ones contain a forward slash are considered invalid and cause an {{IllegalArgumentException}} to be thrown.
> Code higher up the stack should probably be adjusted to better handle such edge cases.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)