From 3ffde6e0151db7ed0f49bbb388de41825282555b Mon Sep 17 00:00:00 2001 From: Sam Delmerico Date: Mon, 18 Mar 2024 17:14:24 -0700 Subject: [PATCH] PackBitmapIndex: hide packChecksum behind getter This allows more flexibility in overriding the PackBitmapIndex and also allows us to turn PackBitmapIndex into an interface in https://review.gerrithub.io/c/eclipse-jgit/jgit/+/1178201. Change-Id: I3be611fad67ff38b308c0052a04149f1497858ae --- .../org/eclipse/jgit/internal/storage/file/Pack.java | 2 +- .../jgit/internal/storage/file/PackBitmapIndex.java | 10 ++++++++-- .../jgit/internal/storage/file/PackBitmapIndexV1.java | 7 +++++++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/Pack.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/Pack.java index 212dbb20aa..f87329ccc2 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/Pack.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/Pack.java @@ -1154,7 +1154,7 @@ public class Pack implements Iterable { PackBitmapIndex idx = PackBitmapIndex.open(bitmapIdxFile, idx(), getReverseIdx()); // At this point, idx() will have set packChecksum. - if (Arrays.equals(packChecksum, idx.packChecksum)) { + if (Arrays.equals(packChecksum, idx.getPackChecksum())) { bitmapIdx = optionally(idx); return idx; } diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackBitmapIndex.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackBitmapIndex.java index def4f3dc11..affd2c0761 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackBitmapIndex.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackBitmapIndex.java @@ -132,8 +132,14 @@ public abstract class PackBitmapIndex { reverseIndexSupplier, loadParallelRevIndex); } - /** Footer checksum applied on the bottom of the pack file. */ - byte[] packChecksum; + /** + * Footer checksum applied on the bottom of the pack file. + * + * @return checksum as a byte array + */ + byte[] getPackChecksum() { + return null; + } /** * Finds the position in the bitmap of the object. diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackBitmapIndexV1.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackBitmapIndexV1.java index f2f24b39cb..19608c1ce5 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackBitmapIndexV1.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackBitmapIndexV1.java @@ -46,6 +46,8 @@ class PackBitmapIndexV1 extends BasePackBitmapIndex { private static final int MAX_XOR_OFFSET = 126; + private byte[] packChecksum; + private static final ExecutorService executor = Executors .newCachedThreadPool(new ThreadFactory() { private final ThreadFactory baseFactory = Executors @@ -269,6 +271,11 @@ class PackBitmapIndexV1 extends BasePackBitmapIndex { return getPackIndex().hashCode(); } + @Override + public byte[] getPackChecksum() { + return this.packChecksum; + } + PackIndex getPackIndex() { return packIndex; } -- 2.39.5