Fix offset in recursion

This commit is contained in:
René Pfeuffer
2020-02-26 13:24:31 +01:00
parent 4e7381b98f
commit 7710088865
2 changed files with 75 additions and 5 deletions

View File

@@ -135,17 +135,18 @@ public class SvnBrowseCommand extends AbstractSvnCommand
{
List<SVNDirEntry> entries = new ArrayList<>(svnRepository.getDir(parent.getPath(), revisionNumber, null, (Collection) null));
sort(entries, entry -> entry.getKind() == SVNNodeKind.DIR, SVNDirEntry::getName);
for (Iterator<SVNDirEntry> iterator = entries.iterator(); resultCount < request.getLimit() + request.getOffset() && iterator.hasNext(); ++resultCount) {
for (Iterator<SVNDirEntry> iterator = entries.iterator(); resultCount < request.getLimit() + request.getOffset() && iterator.hasNext(); ) {
++resultCount;
SVNDirEntry entry = iterator.next();
FileObject child = createFileObject(request, svnRepository, revisionNumber, entry, basePath);
if (resultCount >= request.getOffset()) {
parent.addChild(child);
}
if (child.isDirectory() && request.isRecursive()) {
traverse(svnRepository, revisionNumber, request, child, createBasePath(child.getPath()));
}
if (resultCount > request.getOffset()) {
parent.addChild(child);
}
}
if (resultCount >= request.getLimit() + request.getOffset()) {
parent.setTruncated(true);