[JGIT PATCH 00/13] Misc. bug fixes and cleanups
From: Shawn O. Pearce <hidden>
Date: 2016-06-15 22:46:40
This goes on top of my series from yesterday, as the first part of
it covers some minor corner-case bugs in the WindowCache rewrite.
The last patch in this series maybe should be held off for a while
as it deletes ObjectIdMap. I'm inclined to just kill it off now,
as after 11/13, nobody uses it.
Shawn O. Pearce (13):
Fix performance problem recently introduced to
DeltaPackedObjectLoader
Don't use ByteWindows when checking pack file headers/footers
Rewrite WindowCache to be easier to follow and maintain
Document the IllegalArgumentException thrown by
WindowCache.reconfigure
Create the new WindowCache before clearing the old one
Better handle concurrent reads during a WindowCache reconfiguration
Clear dead OffsetCache cells when clearing a reference
Work around Sun JVM bug "Cleared SoftReference not added to queue"
Replace inefficient new String(String) constructor to silence
FindBugs
Replace inefficient new Long(long) constructor to silence FindBugs
Change IndexPack to use ObjectIdSubclassMap instead of ObjectIdMap
Use getCachedBytes in IndexPack to avoid an unnecessary copy
Remove ObjectIdMap from the JGit library
.../org/spearce/jgit/lib/ConcurrentRepackTest.java | 4 -
.../tst/org/spearce/jgit/lib/ObjectIdMapTest.java | 103 ----
.../src/org/spearce/jgit/lib/ByteArrayWindow.java | 57 +--
.../src/org/spearce/jgit/lib/ByteBufferWindow.java | 41 +-
.../src/org/spearce/jgit/lib/ByteWindow.java | 91 +---
.../spearce/jgit/lib/DeltaPackedObjectLoader.java | 1 +
.../src/org/spearce/jgit/lib/ObjectIdMap.java | 201 --------
.../org/spearce/jgit/lib/ObjectIdSubclassMap.java | 31 ++-
.../src/org/spearce/jgit/lib/OffsetCache.java | 536 ++++++++++++++++++++
.../src/org/spearce/jgit/lib/PackFile.java | 128 +++--
.../org/spearce/jgit/lib/PackedObjectLoader.java | 4 +-
.../src/org/spearce/jgit/lib/RefDatabase.java | 3 +-
.../src/org/spearce/jgit/lib/WindowCache.java | 417 ++++------------
.../src/org/spearce/jgit/lib/WindowCursor.java | 42 +-
.../src/org/spearce/jgit/transport/IndexPack.java | 129 +++--
.../src/org/spearce/jgit/transport/LongMap.java | 152 ++++++
org.spearce.jgit/src/org/spearce/jgit/util/NB.java | 32 ++
17 files changed, 1088 insertions(+), 884 deletions(-)
delete mode 100644 org.spearce.jgit.test/tst/org/spearce/jgit/lib/ObjectIdMapTest.java
delete mode 100644 org.spearce.jgit/src/org/spearce/jgit/lib/ObjectIdMap.java
create mode 100644 org.spearce.jgit/src/org/spearce/jgit/lib/OffsetCache.java
create mode 100644 org.spearce.jgit/src/org/spearce/jgit/transport/LongMap.java