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

Konrad Windszus updated OAK-9956:
---------------------------------
    Description: 
In case {{Session.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.

  was:
In case {{Session.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(....)}}


> javax.jcr.Session.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 {{Session.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)

Reply via email to