Remove use of deprecated getAllRefs() in ReceivePack

Repository.getAllRefs() is deprecated and should not
be used anymore. Leverage the ref-db and the retrieval
of refs by prefix and adapt the result to the expected
refname/ref map.

Bug: 534731
Change-Id: I37a9092859f220ddc4e5063d01544f3e82208be8
Signed-off-by: Luca Milanesio <luca.milanesio@gmail.com>
This commit is contained in:
Luca Milanesio 2021-06-19 01:50:35 +01:00 committed by Matthias Sohn
parent d46af8c69d
commit ed5be35e2e
1 changed files with 19 additions and 1 deletions

View File

@ -29,6 +29,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UncheckedIOException;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Collections;
@ -37,6 +38,8 @@
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.function.Function;
import java.util.stream.Collectors;
import org.eclipse.jgit.annotations.Nullable;
import org.eclipse.jgit.errors.InvalidObjectIdException;
@ -441,7 +444,7 @@ public Map<String, Ref> getAdvertisedRefs() {
*/
public void setAdvertisedRefs(Map<String, Ref> allRefs,
Set<ObjectId> additionalHaves) {
refs = allRefs != null ? allRefs : db.getAllRefs();
refs = allRefs != null ? allRefs : getAllRefs();
refs = refFilter.filter(refs);
advertisedHaves.clear();
@ -1295,6 +1298,21 @@ public ReceivedPackStatistics getReceivedPackStatistics() {
return stats;
}
/**
* Extract the full list of refs from the ref-db.
*
* @return Map of all refname/ref
*/
private Map<String, Ref> getAllRefs() {
try {
return db.getRefDatabase().getRefs().stream()
.collect(Collectors.toMap(Ref::getName,
Function.identity()));
} catch (IOException e) {
throw new UncheckedIOException(e);
}
}
/**
* Receive a list of commands from the input.
*