From: Shawn Pearce Date: Wed, 6 Mar 2013 20:48:25 +0000 (-0800) Subject: Do not attempt to read bitmap from invalid pack X-Git-Tag: v3.0.0.201305080800-m7~113 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=913cccd5c4597d908698fdcb79eaf228c3afefb9;p=jgit.git Do not attempt to read bitmap from invalid pack If a pack file has been marked invalid due to a prior IOException accessing its contents, do not offer its bitmap index to callers. The pack cannot be used so its bitmap should be off limits from any reader trying to work from a bitmap. Change-Id: Ia44e46558abdddee560bb184158b1e0af9437eee --- diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/storage/dfs/DfsPackFile.java b/org.eclipse.jgit/src/org/eclipse/jgit/storage/dfs/DfsPackFile.java index ed6628596a..80cced84e8 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/storage/dfs/DfsPackFile.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/storage/dfs/DfsPackFile.java @@ -277,6 +277,8 @@ public final class DfsPackFile { } PackBitmapIndex getBitmapIndex(DfsReader ctx) throws IOException { + if (invalid) + return null; DfsBlockCache.Ref idxref = bitmapIndex; if (idxref != null) { PackBitmapIndex idx = idxref.get(); diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/PackFile.java b/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/PackFile.java index 31de381721..cd5de595c0 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/PackFile.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/PackFile.java @@ -1057,6 +1057,8 @@ public class PackFile implements Iterable { } synchronized PackBitmapIndex getBitmapIndex() throws IOException { + if (invalid) + return null; if (bitmapIdx == null && hasExt(BITMAP_INDEX)) { final PackBitmapIndex idx = PackBitmapIndex.open( extFile(BITMAP_INDEX), idx(), getReverseIdx());