diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java index 8653c3228..d42d348a1 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java @@ -2371,10 +2371,14 @@ public boolean prepareBitmapIndex(ProgressMonitor pm) throws IOException { int numCommits = objectsLists[OBJ_COMMIT].size(); List byName = sortByName(); + // Reset sortedByName before the array that it points to is mutated by + // PackBitmapIndexBuilder, to prevent other methods referencing the + // mutated array afterwards. sortedByName = null; objectsLists = null; objectsMap = null; writeBitmaps = new PackBitmapIndexBuilder(byName); + // Allow byName to be GC'd if JVM GC runs before the end of the method. byName = null; PackWriterBitmapPreparer bitmapPreparer = new PackWriterBitmapPreparer(