[
https://issues.apache.org/jira/browse/SLING-6368?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15739740#comment-15739740
]
Konrad Windszus edited comment on SLING-6368 at 12/11/16 1:48 PM:
------------------------------------------------------------------
The {{DocViewProperty.parse(...)}} resolves all escaped characters (escape
character is "\"}
(https://github.com/apache/jackrabbit-filevault/blob/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/util/DocViewProperty.java#L201).
That is not being done correctly in the
{{o.a.s.ide.impl.vlt.serialization.ContentXmlHandler}}. The whole class
ContentXmlHandler should be rewritten to internally rely on
{{DocViewNode/DocViewProperty}} instead of implementing the parse method a 2nd
time.
Probably it would be good to come up with a patch for FileVault to decouple
parsing from persisting enhanced doc view format. Currently both is done in
https://github.com/apache/jackrabbit-filevault/blob/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/DocViewSAXImporter.java.
I would suggest to separate the processing in a different implementation,
having a dedicated interface with method {{processSerializedNode(DocViewNode}}.
was (Author: kwin):
The {{DocViewProperty.parse(...)}} resolves all escaped characters (escape
character is "\"}
(https://github.com/apache/jackrabbit-filevault/blob/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/util/DocViewProperty.java#L201).
That is not being done correctly in the
{{o.a.s.ide.impl.vlt.serialization.ContentXmlHandler}}. The whole class
ContentXmlHandler should be rewritten to internally rely on
{{DocViewNode/DocViewProperty}} instead of implementing the parse method a 2nd
time.
> Eclipse IDE Publishing: Double backslashes are not correctly resolved in JCR
> attribute values
> ---------------------------------------------------------------------------------------------
>
> Key: SLING-6368
> URL: https://issues.apache.org/jira/browse/SLING-6368
> Project: Sling
> Issue Type: Bug
> Components: IDE
> Affects Versions: Sling Eclipse IDE 1.1.0
> Reporter: Konrad Windszus
> Priority: Critical
> Attachments: SLING-6368-testv02.patch, content.xml
>
>
> If a .content.xml file contains a attribute like this
> {code}
> configjson="\{
 "title": "Resolved
> Segments",
 "icon":
> "coral-Icon--targeted",
 "storeMapping":
> {
 "s": "segmentation"

> },
 "template": "<p
> class=\\"contexthub-module-line1\\">Resolved Segments</p><p
> class=\\"contexthub-module-line2\\">{{s.summary}}</p>",

> "clickable": true,
 "listReference":
> "/store/segmentation/segments",
 "listType":
> "custom",
 "listItemTemplate":
> "<span>{{label}}</span>",

> "itemOnClickNoop": true
}"
> {code}
> the double "\" is not resolved correclty.
> In the JCR its value is shown as
> {code}
> {
> "title": "Resolved Segments",
> "icon": "coral-Icon--targeted",
> "storeMapping": {
> "s": "segmentation"
> },
> "template": "<p class=\\"contexthub-module-line1\\">Resolved
> Segments</p><p class=\\"contexthub-module-line2\\">{{s.summary}}</p>",
> "clickable": true,
> "listReference": "/store/segmentation/segments",
> "listType": "custom",
> "listItemTemplate": "<span>{{label}}</span>",
> "itemOnClickNoop": true
> }
> {code}
> (i.e. it contains double backslashes).
> When being deployed through the content-package-maven-plugin the same
> attribute is being stored in the JCR with value
> {code}
> {
> "title": "Resolved Segments",
> "icon": "coral-Icon--targeted",
> "storeMapping": {
> "s": "segmentation"
> },
> "template": "<p class=\"contexthub-module-line1\">Resolved Segments</p><p
> class=\"contexthub-module-line2\">{{s.summary}}</p>",
> "clickable": true,
> "listReference": "/store/segmentation/segments",
> "listType": "custom",
> "listItemTemplate": "<span>{{label}}</span>",
> "itemOnClickNoop": true
> }
> {code}
> (i.e. only with single backslashes).
> Attached is the full problematic {{.content.xml}} renamed to {{content.xml}}.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)