From ff852dad518b99edc31e88cbe8c8f45ba207c6a5 Mon Sep 17 00:00:00 2001 From: Zhen Chen Date: Mon, 13 Feb 2017 12:36:25 -0800 Subject: [PATCH] Skip first pack if avoid garbage is set and it is a garbage pack At beginning of the OBJECT_SCAN loop, it will first check if the object exists in the last pack, however, it forgot to avoid garbage pack for the first iteration. Change-Id: I8a99c0f439218d19c49cd4dae891b8cc4a57099d Signed-off-by: Zhen Chen --- .../jgit/internal/storage/dfs/DfsReader.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsReader.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsReader.java index 8d934879e..3593c6101 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsReader.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsReader.java @@ -332,15 +332,17 @@ public final class DfsReader extends ObjectReader implements ObjectReuseAsIs { OBJECT_SCAN: for (Iterator it = pending.iterator(); it.hasNext();) { T t = it.next(); - try { - long p = lastPack.findOffset(this, t); - if (0 < p) { - r.add(new FoundObject(t, lastIdx, lastPack, p)); - it.remove(); - continue; + if (!skipGarbagePack(lastPack)) { + try { + long p = lastPack.findOffset(this, t); + if (0 < p) { + r.add(new FoundObject(t, lastIdx, lastPack, p)); + it.remove(); + continue; + } + } catch (IOException e) { + // Fall though and try to examine other packs. } - } catch (IOException e) { - // Fall though and try to examine other packs. } for (int i = 0; i < packs.length; i++) {