diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackFile.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackFile.java index 70c8d0433..7f985229e 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackFile.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackFile.java @@ -182,8 +182,8 @@ private PackIndex idx(DfsReader ctx) throws IOException { PackIndex idx = idxref.get(); if (index == null && idx != null) { index = idx; - ctx.emitIndexLoad(desc, INDEX, idx); } + ctx.emitIndexLoad(desc, INDEX, index); return index; } catch (IOException e) { invalid = true; @@ -229,8 +229,8 @@ public PackBitmapIndex getBitmapIndex(DfsReader ctx) throws IOException { PackBitmapIndex bmidx = idxref.get(); if (bitmapIndex == null && bmidx != null) { bitmapIndex = bmidx; - ctx.emitIndexLoad(desc, BITMAP_INDEX, bmidx); } + ctx.emitIndexLoad(desc, BITMAP_INDEX, bitmapIndex); return bitmapIndex; } @@ -268,8 +268,8 @@ public CommitGraph getCommitGraph(DfsReader ctx) throws IOException { CommitGraph cg = cgref.get(); if (commitGraph == null && cg != null) { commitGraph = cg; - ctx.emitIndexLoad(desc, COMMIT_GRAPH, cg); } + ctx.emitIndexLoad(desc, COMMIT_GRAPH, commitGraph); return commitGraph; } @@ -303,8 +303,8 @@ public PackReverseIndex getReverseIdx(DfsReader ctx) throws IOException { PackReverseIndex revidx = revref.get(); if (reverseIndex == null && revidx != null) { reverseIndex = revidx; - ctx.emitIndexLoad(desc, REVERSE_INDEX, revidx); } + ctx.emitIndexLoad(desc, REVERSE_INDEX, reverseIndex); return reverseIndex; } @@ -334,12 +334,15 @@ private PackObjectSizeIndex getObjectSizeIndex(DfsReader ctx) PackObjectSizeIndex sizeIdx = sizeIdxRef.get(); if (objectSizeIndex == null && sizeIdx != null) { objectSizeIndex = sizeIdx; - ctx.emitIndexLoad(desc, OBJECT_SIZE_INDEX, sizeIdx); } } finally { objectSizeIndexLoadAttempted = true; } + // Object size index is optional, it can be null and that's fine + if (objectSizeIndex != null) { + ctx.emitIndexLoad(desc, OBJECT_SIZE_INDEX, objectSizeIndex); + } return objectSizeIndex; } @@ -1183,7 +1186,6 @@ private DfsBlockCache.Ref loadPackIndex( try (ReadableChannel rc = ctx.db.openFile(desc, INDEX)) { PackIndex idx = PackIndex.read(alignTo8kBlocks(rc)); ctx.stats.readIdxBytes += rc.position(); - ctx.emitIndexLoad(desc, INDEX, idx); index = idx; return new DfsBlockCache.Ref<>( idxKey, @@ -1211,7 +1213,6 @@ private DfsBlockCache.Ref loadReverseIdx( long start = System.nanoTime(); PackReverseIndex revidx = PackReverseIndexFactory.computeFromIndex(idx); reverseIndex = revidx; - ctx.emitIndexLoad(desc, REVERSE_INDEX, revidx); ctx.stats.readReverseIdxMicros += elapsedMicros(start); return new DfsBlockCache.Ref<>( revKey, @@ -1232,7 +1233,6 @@ private DfsBlockCache.Ref loadObjectSizeIndex( objectSizeIndex = PackObjectSizeIndexLoader .load(Channels.newInputStream(rc)); size = rc.position(); - ctx.emitIndexLoad(desc, OBJECT_SIZE_INDEX, objectSizeIndex); } catch (IOException e) { parsingError = e; }