[ https://issues.apache.org/jira/browse/OAK-3395?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14743225#comment-14743225 ]
Michael Marth commented on OAK-3395: ------------------------------------ re-phrasing Julian's question: *should* we treat these characters as illegal? > RevisionGC fails for JCR paths having line feed characters > ---------------------------------------------------------- > > Key: OAK-3395 > URL: https://issues.apache.org/jira/browse/OAK-3395 > Project: Jackrabbit Oak > Issue Type: Bug > Components: mongomk, rdbmk > Reporter: Chetan Mehrotra > Assignee: Chetan Mehrotra > Priority: Minor > Fix For: 1.3.7, 1.2.5, 1.0.21 > > > RevisionGC fails with error while processing any id (derived from JCR path) > having line feed or carriage return char > This happens because it relies on Oak Commons StringSort and ExternalSort > which works with line delimited string and having an id with line break would > break this sorting logic. Error reported is like > {noformat} > java.lang.AssertionError: Invalid id /1442211320 > at > org.apache.jackrabbit.oak.plugins.document.util.Utils.getDepthFromId(Utils.java:337) > at > org.apache.jackrabbit.oak.plugins.document.NodeDocumentIdComparator.compare(NodeDocumentIdComparator.java:38) > at > org.apache.jackrabbit.oak.plugins.document.NodeDocumentIdComparator.compare(NodeDocumentIdComparator.java:30) > at java.util.TimSort.countRunAndMakeAscending(TimSort.java:324) > at java.util.TimSort.sort(TimSort.java:203) > at java.util.TimSort.sort(TimSort.java:173) > at java.util.Arrays.sort(Arrays.java:659) > at java.util.Collections.sort(Collections.java:217) > at > org.apache.jackrabbit.oak.commons.sort.ExternalSort.sortAndSave(ExternalSort.java:279) > at > org.apache.jackrabbit.oak.commons.sort.ExternalSort.sortInBatch(ExternalSort.java:218) > at > org.apache.jackrabbit.oak.commons.sort.ExternalSort.sortInBatch(ExternalSort.java:257) > at > org.apache.jackrabbit.oak.commons.sort.StringSort$PersistentState.sort(StringSort.java:191) > at > org.apache.jackrabbit.oak.commons.sort.StringSort.sort(StringSort.java:88) > at > org.apache.jackrabbit.oak.plugins.document.VersionGarbageCollector$DeletedDocsGC.ensureSorted(VersionGarbageCollector.java:383) > at > org.apache.jackrabbit.oak.plugins.document.VersionGarbageCollector$DeletedDocsGC.getDocIdsToDelete(VersionGarbageCollector.java:274) > at > org.apache.jackrabbit.oak.plugins.document.VersionGarbageCollector$DeletedDocsGC.removeDeletedDocuments(VersionGarbageCollector.java:296) > at > org.apache.jackrabbit.oak.plugins.document.VersionGarbageCollector$DeletedDocsGC.removeDocuments(VersionGarbageCollector.java:241) > at > org.apache.jackrabbit.oak.plugins.document.VersionGarbageCollector.collectDeletedDocuments(VersionGarbageCollector.java:154) > at > org.apache.jackrabbit.oak.plugins.document.VersionGarbageCollector.gc(VersionGarbageCollector.java:105) > at > org.apache.jackrabbit.oak.plugins.document.VersionGCDeletionTest.gcWithPathsHavingNewLine(VersionGCDeletionTest.java:203) > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)