Close RevWalk in BranchTrackingStatus.of()

Bug: 530757
Change-Id: I985ee5395e1468981c28ae0a80797732e2f528d2
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
This commit is contained in:
Matthias Sohn 2018-02-06 01:10:26 +01:00
parent dce5bc2498
commit f7244b81cc
1 changed files with 15 additions and 12 deletions

View File

@ -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;