[infer] Fix resource leaks in RebaseCommand

Bug: 509385
Change-Id: I9fbdfda59f7bc577aab55dc92ff897b00b5cb050
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
This commit is contained in:
Matthias Sohn 2016-12-18 01:24:56 +01:00
parent 05e8cdf563
commit 82344bd7a2
1 changed files with 9 additions and 7 deletions

View File

@ -400,8 +400,8 @@ private boolean autoStashApply() throws IOException, GitAPIException {
boolean conflicts = false;
if (rebaseState.getFile(AUTOSTASH).exists()) {
String stash = rebaseState.readFile(AUTOSTASH);
try {
Git.wrap(repo).stashApply().setStashRef(stash)
try (Git git = Git.wrap(repo)) {
git.stashApply().setStashRef(stash)
.ignoreRepositoryState(true).setStrategy(strategy)
.call();
} catch (StashApplyFailureException e) {
@ -463,8 +463,10 @@ private RebaseResult processStep(RebaseTodoLine step, boolean shouldPick)
String oldMessage = commitToPick.getFullMessage();
String newMessage = interactiveHandler
.modifyCommitMessage(oldMessage);
newHead = new Git(repo).commit().setMessage(newMessage)
.setAmend(true).setNoVerify(true).call();
try (Git git = new Git(repo)) {
newHead = git.commit().setMessage(newMessage).setAmend(true)
.setNoVerify(true).call();
}
return null;
case EDIT:
rebaseState.createFile(AMEND, commitToPick.name());
@ -753,12 +755,12 @@ private void resetSoftToParent() throws IOException,
GitAPIException, CheckoutConflictException {
Ref ref = repo.exactRef(Constants.ORIG_HEAD);
ObjectId orig_head = ref == null ? null : ref.getObjectId();
try {
// we have already commited the cherry-picked commit.
try (Git git = Git.wrap(repo)) {
// we have already committed the cherry-picked commit.
// what we need is to have changes introduced by this
// commit to be on the index
// resetting is a workaround
Git.wrap(repo).reset().setMode(ResetType.SOFT)
git.reset().setMode(ResetType.SOFT)
.setRef("HEAD~1").call(); //$NON-NLS-1$
} finally {
// set ORIG_HEAD back to where we started because soft