From a6677ef28a2abfd0c5b8971a74f7a987e504d26f Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Tue, 8 Nov 2011 12:22:37 -0800 Subject: [PATCH] DfsBlockCache: Fix NPE when evicting empty cell The cache starts with a single empty Ref that has no data, as the clock list does not support being empty. When this Ref is removed, the size has to be decremented from the associated DfsPackKey, which was previously null. Make it always be non-null. Change-Id: I2af99903e8039405ea6d67f383576ffa43839cff --- .../src/org/eclipse/jgit/storage/dfs/DfsBlockCache.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/storage/dfs/DfsBlockCache.java b/org.eclipse.jgit/src/org/eclipse/jgit/storage/dfs/DfsBlockCache.java index d3dadbe29..e8733701d 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/storage/dfs/DfsBlockCache.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/storage/dfs/DfsBlockCache.java @@ -206,7 +206,7 @@ public final class DfsBlockCache { blockSizeShift = Integer.numberOfTrailingZeros(blockSize); clockLock = new ReentrantLock(true /* fair */); - clockHand = new Ref(null, -1, 0, null); + clockHand = new Ref(new DfsPackKey(), -1, 0, null); clockHand.next = clockHand; readAheadLimit = cfg.getReadAheadLimit();