diff options
author | Robin Rosenberg <robin.rosenberg@dewire.com> | 2012-05-30 02:07:25 +0200 |
---|---|---|
committer | Robin Rosenberg <robin.rosenberg@dewire.com> | 2012-05-30 22:08:49 +0200 |
commit | 4e1454ded6e2fcf6cb789c004756883c3ea5f77e (patch) | |
tree | 413bd8a7185dd31c6bcd942099091b3d2222d02e /org.eclipse.jgit/src/org/eclipse/jgit/api/StatusCommand.java | |
parent | 629e7cd926779871e9c0d6306e4c184ac67da864 (diff) | |
download | jgit-4e1454ded6e2fcf6cb789c004756883c3ea5f77e.tar.gz jgit-4e1454ded6e2fcf6cb789c004756883c3ea5f77e.zip |
Git API does not declare GitAPIException call() and related cleanups
All commands should throw a GitAPIException so new exceptions can be
added without breaking the builds of old code, i.e. anyone that calls
a Git API should catch GitAPIException and not just the currently known
exceptions.
Now the only checked exceptions on Git API calls are GitException and
subclasses of it. New checked exceptions that are subclasses of
GitException may be added without breaking the API.
Javadoc for GitAPIException is declared on GitCommand and
inherited to subclasses. JGitInternalException is not explicitly
documented anymore.
Unfortunately this change itself breaks the API. The intention is
that it shall be possible to add new checked subclasses of
GitAPIException without breaking the API.
Bug: 366914
EGit-Change-Id: I50380f13fc82c22d0036f47c7859cc3a77e767c5
Change-Id: I50380f13fc82c22d0036f47c7859cc3a77e767c5
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
Diffstat (limited to 'org.eclipse.jgit/src/org/eclipse/jgit/api/StatusCommand.java')
-rw-r--r-- | org.eclipse.jgit/src/org/eclipse/jgit/api/StatusCommand.java | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/StatusCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/StatusCommand.java index 7d7eb1871f..b3e112fc6a 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/api/StatusCommand.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/StatusCommand.java @@ -44,6 +44,8 @@ package org.eclipse.jgit.api; import java.io.IOException; +import org.eclipse.jgit.api.errors.GitAPIException; +import org.eclipse.jgit.api.errors.JGitInternalException; import org.eclipse.jgit.errors.NoWorkTreeException; import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.IndexDiff; @@ -80,14 +82,17 @@ public class StatusCommand extends GitCommand<Status> { * @return a {@link Status} object telling about each path where working * tree, index or HEAD differ from each other. */ - public Status call() throws IOException, NoWorkTreeException { + public Status call() throws GitAPIException, NoWorkTreeException { if (workingTreeIt == null) workingTreeIt = new FileTreeIterator(repo); - IndexDiff diff = new IndexDiff(repo, Constants.HEAD, workingTreeIt); - diff.diff(); - - return new Status(diff); + try { + IndexDiff diff = new IndexDiff(repo, Constants.HEAD, workingTreeIt); + diff.diff(); + return new Status(diff); + } catch (IOException e) { + throw new JGitInternalException(e.getMessage(), e); + } } /** |