Browse Source

Merge "Don't insert the same pack twice into a pack list"

tags/v0.8.1
Chris Aniszczyk 14 years ago
parent
commit
28e42cb463
1 changed files with 13 additions and 0 deletions
  1. 13
    0
      org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectDirectory.java

+ 13
- 0
org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectDirectory.java View File

@@ -292,7 +292,20 @@ public class ObjectDirectory extends ObjectDatabase {
PackList o, n;
do {
o = packList.get();

// If the pack in question is already present in the list
// (picked up by a concurrent thread that did a scan?) we
// do not want to insert it a second time.
//
final PackFile[] oldList = o.packs;
final String name = pf.getPackFile().getName();
for (PackFile p : oldList) {
if (PackFile.SORT.compare(pf, p) < 0)
break;
if (name.equals(p.getPackFile().getName()))
return;
}

final PackFile[] newList = new PackFile[1 + oldList.length];
newList[0] = pf;
System.arraycopy(oldList, 0, newList, 1, oldList.length);

Loading…
Cancel
Save