diff options
author | Andrey Loskutov <loskutov@gmx.de> | 2015-08-02 23:46:09 +0200 |
---|---|---|
committer | Andrey Loskutov <loskutov@gmx.de> | 2015-08-02 23:46:09 +0200 |
commit | 130952656432ec9c5d7f56fc84049ff95bfaed56 (patch) | |
tree | 61b2f9daf3157af9aa5b99f49b747e3eb856bbfe | |
parent | 204da3969e51d0e36b59924d697787ae9578332e (diff) | |
download | jgit-130952656432ec9c5d7f56fc84049ff95bfaed56.tar.gz jgit-130952656432ec9c5d7f56fc84049ff95bfaed56.zip |
Clone should close repository after errors in fetch or checkout
Bug: 474093
Change-Id: Ia0a1478260b94a71a947aa8c04ee0c836d390aec
Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
-rw-r--r-- | org.eclipse.jgit/src/org/eclipse/jgit/api/CloneCommand.java | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/CloneCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/CloneCommand.java index 9de2803c0b..4aaee8d96d 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/api/CloneCommand.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/CloneCommand.java @@ -127,16 +127,23 @@ public class CloneCommand extends TransportCommand<CloneCommand, Git> { */ public Git call() throws GitAPIException, InvalidRemoteException, org.eclipse.jgit.api.errors.TransportException { + Repository repository = null; try { URIish u = new URIish(uri); - Repository repository = init(u); + repository = init(u); FetchResult result = fetch(repository, u); if (!noCheckout) checkout(repository, result); return new Git(repository); } catch (IOException ioe) { + if (repository != null) { + repository.close(); + } throw new JGitInternalException(ioe.getMessage(), ioe); } catch (URISyntaxException e) { + if (repository != null) { + repository.close(); + } throw new InvalidRemoteException(MessageFormat.format( JGitText.get().invalidRemote, remote)); } |