Don't use deprecated Repository#getAllRefs in Repository Also expose the potentially IOException thrown by RefDatabase#getRefs. Hence the following methods now potentially throw IOException: - Repository#getAllRefsByPeeledObjectId Bug: 534731 Change-Id: Id6956ff112560e6314d4335238494708346f2338
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java index 2d1aca8..e594e52 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java
@@ -1161,12 +1161,14 @@ public Ref peel(Ref ref) { * Get a map with all objects referenced by a peeled ref. * * @return a map with all objects referenced by a peeled ref. + * @throws IOException */ @NonNull - public Map<AnyObjectId, Set<Ref>> getAllRefsByPeeledObjectId() { - Map<String, Ref> allRefs = getAllRefs(); + public Map<AnyObjectId, Set<Ref>> getAllRefsByPeeledObjectId() + throws IOException { + List<Ref> allRefs = getRefDatabase().getRefs(); Map<AnyObjectId, Set<Ref>> ret = new HashMap<>(allRefs.size()); - for (Ref ref : allRefs.values()) { + for (Ref ref : allRefs) { ref = peel(ref); AnyObjectId target = ref.getPeeledObjectId(); if (target == null)
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revplot/PlotWalk.java b/org.eclipse.jgit/src/org/eclipse/jgit/revplot/PlotWalk.java index b4ccfe0..0582338 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/revplot/PlotWalk.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/revplot/PlotWalk.java
@@ -121,7 +121,7 @@ public RevCommit next() throws MissingObjectException, return pc; } - private Ref[] getRefs(AnyObjectId commitId) { + private Ref[] getRefs(AnyObjectId commitId) throws IOException { if (reverseRefMap == null) { reverseRefMap = repository.getAllRefsByPeeledObjectId(); for (Map.Entry<AnyObjectId, Set<Ref>> entry : additionalRefMap