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/18 13:02:19 UTC
[jira] [Created] (OAK-1431) Handling of empty or invalid names
Jukka Zitting created OAK-1431:
----------------------------------
Summary: 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
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)