[ 
https://issues.apache.org/jira/browse/JCRVLT-582?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17470207#comment-17470207
 ] 

Jean-Christophe Kautzmann edited comment on JCRVLT-582 at 1/6/22, 10:06 PM:
----------------------------------------------------------------------------

I enabled trace level for the {{org.apache.jackrabbit.vault.fs.io.Importer}} 
class (cf the attached {{sites-3957.log}} file) and found out that the package 
importer has issues dealing with mangled paths (e.g. {{/content/_cq_tags}}) 
when paths are mapped with regex (subtree 
{{/content/cq:tags/aem-site-template-standard}} is mapped to 
{{/content/cq:tags/test1}}): it tries to commit both the source and the 
destination path:
{code}
06.01.2022 15:41:20.038 *TRACE* [[0:0:0:0:0:0:0:1] [1641480076493] POST 
/bin/wcmcommand HTTP/1.1] org.apache.jackrabbit.vault.fs.io.Importer committing 
/content/cq:tags/aem-site-template-standard
06.01.2022 15:41:20.038 *DEBUG* [[0:0:0:0:0:0:0:1] [1641480076493] POST 
/bin/wcmcommand HTTP/1.1] org.apache.jackrabbit.vault.fs.io.Importer S 
/content/cq:tags/aem-site-template-standard
06.01.2022 15:41:20.038 *TRACE* [[0:0:0:0:0:0:0:1] [1641480076493] POST 
/bin/wcmcommand HTTP/1.1] org.apache.jackrabbit.vault.fs.io.Importer committed 
/content/cq:tags/aem-site-template-standard
06.01.2022 15:41:20.038 *TRACE* [[0:0:0:0:0:0:0:1] [1641480076493] POST 
/bin/wcmcommand HTTP/1.1] org.apache.jackrabbit.vault.fs.io.Importer committing 
/content/cq:tags/test1
06.01.2022 15:41:20.038 *TRACE* [[0:0:0:0:0:0:0:1] [1641480076493] POST 
/bin/wcmcommand HTTP/1.1] org.apache.jackrabbit.vault.fs.io.Importer committed 
/content/cq:tags/test1
{code}
I was able to work around the issue by adding path mapping for both the 
unmangled and mangled paths:
{code}
pathMapping.addMapping(path + "(/.*)?", sitePaths.get(path) + "$1");
if (StringUtils.contains(path, ":")) {
    pathMapping.addMapping(mangleNamespaces(path, resourceResolver) + "(/.*)?", 
mangleNamespaces(sitePaths.get(path), resourceResolver) + "$1");
}
{code}


was (Author: jck):
I enabled trace level for the {{org.apache.jackrabbit.vault.fs.io.Importer}} 
class (cf attachment) and found out that the package importer has issues 
dealing with mangled paths (e.g. {{/content/_cq_tags}}) when paths are mapped 
with regex (subtree {{/content/cq:tags/aem-site-template-standard}} is mapped 
to {{/content/cq:tags/test1}}): it tries to commit both the source and the 
destination path:
{code}
06.01.2022 15:41:20.038 *TRACE* [[0:0:0:0:0:0:0:1] [1641480076493] POST 
/bin/wcmcommand HTTP/1.1] org.apache.jackrabbit.vault.fs.io.Importer committing 
/content/cq:tags/aem-site-template-standard
06.01.2022 15:41:20.038 *DEBUG* [[0:0:0:0:0:0:0:1] [1641480076493] POST 
/bin/wcmcommand HTTP/1.1] org.apache.jackrabbit.vault.fs.io.Importer S 
/content/cq:tags/aem-site-template-standard
06.01.2022 15:41:20.038 *TRACE* [[0:0:0:0:0:0:0:1] [1641480076493] POST 
/bin/wcmcommand HTTP/1.1] org.apache.jackrabbit.vault.fs.io.Importer committed 
/content/cq:tags/aem-site-template-standard
06.01.2022 15:41:20.038 *TRACE* [[0:0:0:0:0:0:0:1] [1641480076493] POST 
/bin/wcmcommand HTTP/1.1] org.apache.jackrabbit.vault.fs.io.Importer committing 
/content/cq:tags/test1
06.01.2022 15:41:20.038 *TRACE* [[0:0:0:0:0:0:0:1] [1641480076493] POST 
/bin/wcmcommand HTTP/1.1] org.apache.jackrabbit.vault.fs.io.Importer committed 
/content/cq:tags/test1
{code}
I was able to work around the issue by adding path mapping for both the 
unmangled and mangled paths:
{code}
pathMapping.addMapping(path + "(/.*)?", sitePaths.get(path) + "$1");
if (StringUtils.contains(path, ":")) {
    pathMapping.addMapping(mangleNamespaces(path, resourceResolver) + "(/.*)?", 
mangleNamespaces(sitePaths.get(path), resourceResolver) + "$1");
}
{code}

> Package import fails for namespaced paths and path mapping
> ----------------------------------------------------------
>
>                 Key: JCRVLT-582
>                 URL: https://issues.apache.org/jira/browse/JCRVLT-582
>             Project: Jackrabbit FileVault
>          Issue Type: Bug
>          Components: Packaging
>    Affects Versions: 3.5.8
>            Reporter: Jean-Christophe Kautzmann
>            Priority: Major
>         Attachments: sites-3957.log
>
>
> Package import fails to import nodes when used as follows:
> * the package contains namespaced paths (e.g. {{/content/_cq_tags/src}})
> * regex path mapping are defined to map {{/content/cq:tags/src}} to 
> {{/content/cq:tags/dest}}
> {code}
> RegexpPathMapping pathMapping = new RegexpPathMapping();
> for (String path : sitePaths.keySet()) {
>     pathMapping.addMapping(path + "(/.*)?", sitePaths.get(path) + "$1");
> }
> ImportOptions options = new ImportOptions();
> options.setPathMapping(pathMapping);
> jcrPackage.install(options);
> {code}
>  Result: nodes below {{/content/cq:tags}} are not created.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to