]> source.dussan.org Git - jgit.git/commitdiff
[infer] Fix resource leaks in RebaseCommand 62/87362/3
authorMatthias Sohn <matthias.sohn@sap.com>
Sun, 18 Dec 2016 00:24:56 +0000 (01:24 +0100)
committerMatthias Sohn <matthias.sohn@sap.com>
Sun, 18 Dec 2016 09:38:24 +0000 (10:38 +0100)
Bug: 509385
Change-Id: I9fbdfda59f7bc577aab55dc92ff897b00b5cb050
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java

index c5c0cfb821a634972f166d23dc5bfd80e94e5ee3..d10cc3d715a9142a2c25cb2923738000b5c45d18 100644 (file)
@@ -400,8 +400,8 @@ public class RebaseCommand extends GitCommand<RebaseResult> {
                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 @@ public class RebaseCommand extends GitCommand<RebaseResult> {
                        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 @@ public class RebaseCommand extends GitCommand<RebaseResult> {
                        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