You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tika.apache.org by "Doug Martin (JIRA)" <ji...@apache.org> on 2013/10/01 20:59:23 UTC
[jira] [Commented] (TIKA-1176) ChmDirectoryListingSet does not
correctly enumerate directory entries
[ https://issues.apache.org/jira/browse/TIKA-1176?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13783218#comment-13783218 ]
Doug Martin commented on TIKA-1176:
-----------------------------------
The following change fixes the problem:
{code}
if (indexUserData < indexWorkData || indexWorkData == -1) {
setPlaceHolder(indexUserData);
} else {
setPlaceHolder(indexWorkData);
}
{code}
> ChmDirectoryListingSet does not correctly enumerate directory entries
> ---------------------------------------------------------------------
>
> Key: TIKA-1176
> URL: https://issues.apache.org/jira/browse/TIKA-1176
> Project: Tika
> Issue Type: Bug
> Components: parser
> Affects Versions: 1.4
> Reporter: Doug Martin
>
> ChmDirectoryListingSet.enumerateOneSegment method does not correctly enumerate directory entries when ChmCommons.indexOf returns -1 for work data or user data. Here is the offending code:
> {code}
> int indexWorkData = ChmCommons.indexOf(dir_chunk,
> "::".getBytes());
> int indexUserData = ChmCommons.indexOf(dir_chunk,
> "/".getBytes());
> if (indexUserData < indexWorkData)
> setPlaceHolder(indexUserData);
> else
> setPlaceHolder(indexWorkData);
> if (getPlaceHolder() > 0 ...
> {code}
> If either indexUserData or indexWorkData is -1, that value will be set as the placeholder index, resulting in the method returning without processing any entries.
--
This message was sent by Atlassian JIRA
(v6.1#6144)