From f7244b81ccb8dbfc9b2219fc9aa8a4cb15ced52c Mon Sep 17 00:00:00 2001 From: Matthias Sohn Date: Tue, 6 Feb 2018 01:10:26 +0100 Subject: [PATCH] Close RevWalk in BranchTrackingStatus.of() Bug: 530757 Change-Id: I985ee5395e1468981c28ae0a80797732e2f528d2 Signed-off-by: Matthias Sohn --- .../jgit/lib/BranchTrackingStatus.java | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/BranchTrackingStatus.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/BranchTrackingStatus.java index ac1529f99..51b5b80fc 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/BranchTrackingStatus.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/BranchTrackingStatus.java @@ -87,22 +87,25 @@ public static BranchTrackingStatus of(Repository repository, String branchName) if (local == null) return null; - RevWalk walk = new RevWalk(repository); + try (RevWalk walk = new RevWalk(repository)) { - RevCommit localCommit = walk.parseCommit(local.getObjectId()); - RevCommit trackingCommit = walk.parseCommit(tracking.getObjectId()); + RevCommit localCommit = walk.parseCommit(local.getObjectId()); + RevCommit trackingCommit = walk.parseCommit(tracking.getObjectId()); - walk.setRevFilter(RevFilter.MERGE_BASE); - walk.markStart(localCommit); - walk.markStart(trackingCommit); - RevCommit mergeBase = walk.next(); + walk.setRevFilter(RevFilter.MERGE_BASE); + walk.markStart(localCommit); + walk.markStart(trackingCommit); + RevCommit mergeBase = walk.next(); - walk.reset(); - walk.setRevFilter(RevFilter.ALL); - int aheadCount = RevWalkUtils.count(walk, localCommit, mergeBase); - int behindCount = RevWalkUtils.count(walk, trackingCommit, mergeBase); + walk.reset(); + walk.setRevFilter(RevFilter.ALL); + int aheadCount = RevWalkUtils.count(walk, localCommit, mergeBase); + int behindCount = RevWalkUtils.count(walk, trackingCommit, + mergeBase); - return new BranchTrackingStatus(trackingBranch, aheadCount, behindCount); + return new BranchTrackingStatus(trackingBranch, aheadCount, + behindCount); + } } private final String remoteTrackingBranch;