[
https://issues.apache.org/jira/browse/OAK-9956?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Konrad Windszus updated OAK-9956:
---------------------------------
Labels: namespace (was: )
> javax.jcr.Node.addNode(...) throws javax.jcr.PathNotFoundException for any
> unmapped namespaces in expanded path notation
> ------------------------------------------------------------------------------------------------------------------------
>
> Key: OAK-9956
> URL: https://issues.apache.org/jira/browse/OAK-9956
> Project: Jackrabbit Oak
> Issue Type: Bug
> Affects Versions: 1.44.0
> Reporter: Konrad Windszus
> Assignee: Julian Reschke
> Priority: Major
> Labels: namespace
> Attachments: OAK-9956.diff
>
>
> In case {{Node.addNode(...)}} is called with a path in [expanded
> form|https://developer.adobe.com/experience-manager/reference-materials/spec/jcr/2.0/3_Repository_Model.html#3.2.5.1%20Expanded%20Form]
> containing a namespace URI which is not mapped a
> {{javax.jcr.PathNotFoundException}} is thrown. This is unexpected as the JCR
> 2.0 spec allows unmapped namespaces according to
> https://developer.adobe.com/experience-manager/reference-materials/spec/jcr/2.0/3_Repository_Model.html#3.5.2%20Session-Local%20Mappings
> and
> https://developer.adobe.com/experience-manager/reference-materials/spec/jcr/2.0/3_Repository_Model.html#3.4.3.4%20Parsing%20Lexical%20Paths
> {quote}When parsing a lexical path, the parser must distinguish between name
> segments that are in expanded form and those that are in qualified form (see
> §3.2.5 Lexical Form of JCR Names). When making this determination, the
> repository cannot assume that every namespace URI encountered in an expanded
> name will be registered within the repository.
> An otherwise valid path containing an expanded name with an unregistered
> namespace URI will always resolve into a valid internal representation of a
> path (i.e., an ordered list of path segments, see §3.4 Paths). Any errors
> that arise from passing such a path must therefore be as a result of further
> processing (not merely parsing) that depends on the semantics of the path and
> the context of use.{quote}
> The same exception is thrown if there is a prefix only locally registered via
> {{Session.setNamespacePrefix(....)}} for both cases when calling
> {{addNode(...)}} afterwards in either qualified or expanded form.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)