[ https://issues.apache.org/jira/browse/OAK-9956?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17609473#comment-17609473 ]
Konrad Windszus commented on OAK-9956: -------------------------------------- bq. So that is actually correct behavior. IMHO not, according to JCR spec it should be supported to use unmapped namespaces (both with nodes and properties). > 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 > Priority: Major > > 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)