Remove ambiguous CheckoutConflictException

Checkout command should throw o.e.j.api.errors.CheckoutConflictException
which is a GitAPIException not o.e.j.errors.CheckoutConflictException.
PullCommand should rethrow the API exception as a JGitInternalException.

Bug: 356922
Change-Id: I865c4905997d9834c85a97fbe7287604daf99075
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
This commit is contained in:
Tomasz Zarna 2012-03-06 22:43:25 +01:00 committed by Matthias Sohn
parent e05300b21d
commit 90d002c15f
5 changed files with 15 additions and 8 deletions

View File

@ -56,6 +56,7 @@
import java.io.IOException;
import org.eclipse.jgit.api.CheckoutResult.Status;
import org.eclipse.jgit.api.errors.CheckoutConflictException;
import org.eclipse.jgit.api.errors.InvalidRefNameException;
import org.eclipse.jgit.api.errors.JGitInternalException;
import org.eclipse.jgit.api.errors.RefAlreadyExistsException;
@ -127,7 +128,8 @@ public void testCreateBranchOnCheckout() throws Exception {
@Test
public void testCheckoutToNonExistingBranch() throws JGitInternalException,
RefAlreadyExistsException, InvalidRefNameException {
RefAlreadyExistsException, InvalidRefNameException,
CheckoutConflictException {
try {
git.checkout().setName("badbranch").call();
fail("Should have failed");
@ -222,7 +224,7 @@ public void testCheckoutRemoteTrackingWithoutLocalBranch() throws Exception {
@Test
public void testDetachedHeadOnCheckout() throws JGitInternalException,
RefAlreadyExistsException, RefNotFoundException,
InvalidRefNameException, IOException {
InvalidRefNameException, IOException, CheckoutConflictException {
CheckoutCommand co = git.checkout();
co.setName("master").call();

View File

@ -62,7 +62,6 @@
import org.eclipse.jgit.api.ResetCommand.ResetType;
import org.eclipse.jgit.api.Status;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.api.errors.JGitInternalException;
import org.eclipse.jgit.api.errors.NoFilepatternException;
import org.eclipse.jgit.dircache.DirCache;
import org.eclipse.jgit.dircache.DirCacheCheckout;
@ -1015,7 +1014,7 @@ public void testFileModeChangeAndContentChangeConflict() throws Exception {
try {
checkout.call();
fail("Checkout exception not thrown");
} catch (JGitInternalException e) {
} catch (org.eclipse.jgit.api.errors.CheckoutConflictException e) {
CheckoutResult result = checkout.getResult();
assertNotNull(result);
assertNotNull(result.getConflictList());

View File

@ -51,6 +51,7 @@
import org.eclipse.jgit.JGitText;
import org.eclipse.jgit.api.CheckoutResult.Status;
import org.eclipse.jgit.api.errors.CheckoutConflictException;
import org.eclipse.jgit.api.errors.InvalidRefNameException;
import org.eclipse.jgit.api.errors.JGitInternalException;
import org.eclipse.jgit.api.errors.RefAlreadyExistsException;
@ -62,7 +63,6 @@
import org.eclipse.jgit.dircache.DirCacheEntry;
import org.eclipse.jgit.dircache.DirCacheIterator;
import org.eclipse.jgit.errors.AmbiguousObjectException;
import org.eclipse.jgit.errors.CheckoutConflictException;
import org.eclipse.jgit.lib.AnyObjectId;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.FileMode;
@ -124,7 +124,8 @@ protected CheckoutCommand(Repository repo) {
* @return the newly created branch
*/
public Ref call() throws JGitInternalException, RefAlreadyExistsException,
RefNotFoundException, InvalidRefNameException {
RefNotFoundException, InvalidRefNameException,
CheckoutConflictException {
checkCallable();
processOptions();
try {
@ -164,10 +165,10 @@ public Ref call() throws JGitInternalException, RefAlreadyExistsException,
dco.setFailOnConflict(true);
try {
dco.checkout();
} catch (CheckoutConflictException e) {
} catch (org.eclipse.jgit.errors.CheckoutConflictException e) {
status = new CheckoutResult(Status.CONFLICTS, dco
.getConflicts());
throw e;
throw new CheckoutConflictException(dco.getConflicts(), e);
}
Ref ref = repo.getRef(name);
if (ref != null && !ref.getName().startsWith(Constants.R_HEADS))

View File

@ -62,6 +62,7 @@
import org.eclipse.jgit.JGitText;
import org.eclipse.jgit.api.RebaseResult.Status;
import org.eclipse.jgit.api.errors.CheckoutConflictException;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.api.errors.InvalidRefNameException;
import org.eclipse.jgit.api.errors.JGitInternalException;
@ -676,6 +677,8 @@ private RevCommit tryFastForward(String headName, RevCommit oldCommit,
throw new JGitInternalException(e.getMessage(), e);
} catch (InvalidRefNameException e) {
throw new JGitInternalException(e.getMessage(), e);
} catch (CheckoutConflictException e) {
throw new JGitInternalException(e.getMessage(), e);
}
}

View File

@ -55,6 +55,8 @@ public class CheckoutConflictException extends GitAPIException {
* list of conflicting paths
*
* @param e
* a {@link org.eclipse.jgit.errors.CheckoutConflictException}
* exception
*/
public CheckoutConflictException(List<String> conflictingPaths,
org.eclipse.jgit.errors.CheckoutConflictException e) {