aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit/src/org/eclipse/jgit/api/StatusCommand.java
diff options
context:
space:
mode:
authorRobin Rosenberg <robin.rosenberg@dewire.com>2012-05-30 02:07:25 +0200
committerRobin Rosenberg <robin.rosenberg@dewire.com>2012-05-30 22:08:49 +0200
commit4e1454ded6e2fcf6cb789c004756883c3ea5f77e (patch)
tree413bd8a7185dd31c6bcd942099091b3d2222d02e /org.eclipse.jgit/src/org/eclipse/jgit/api/StatusCommand.java
parent629e7cd926779871e9c0d6306e4c184ac67da864 (diff)
downloadjgit-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.java15
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);
+ }
}
/**