Skip to content

Commit b8830d7

Browse files
committed
Throw API exception when LsRemoteCommand fails with TransportException
In many cases applications want to handle TransportException hence expose it as an API exception. Change-Id: I64b885ecfb1a35bd93c89026c6298d1820ba69d0 Signed-off-by: Matthias Sohn <[email protected]>
1 parent d5c890e commit b8830d7

File tree

2 files changed

+70
-2
lines changed

2 files changed

+70
-2
lines changed

org.eclipse.jgit/src/org/eclipse/jgit/api/LsRemoteCommand.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@
4242
*/
4343
package org.eclipse.jgit.api;
4444

45-
import java.io.IOException;
4645
import java.net.URISyntaxException;
4746
import java.text.MessageFormat;
4847
import java.util.ArrayList;
@@ -54,6 +53,8 @@
5453
import org.eclipse.jgit.api.errors.GitAPIException;
5554
import org.eclipse.jgit.api.errors.InvalidRemoteException;
5655
import org.eclipse.jgit.api.errors.JGitInternalException;
56+
import org.eclipse.jgit.errors.NotSupportedException;
57+
import org.eclipse.jgit.errors.TransportException;
5758
import org.eclipse.jgit.lib.Constants;
5859
import org.eclipse.jgit.lib.Ref;
5960
import org.eclipse.jgit.lib.Repository;
@@ -176,10 +177,14 @@ public Collection<Ref> call() throws GitAPIException,
176177
} catch (URISyntaxException e) {
177178
throw new InvalidRemoteException(MessageFormat.format(
178179
JGitText.get().invalidRemote, remote));
179-
} catch (IOException e) {
180+
} catch (NotSupportedException e) {
180181
throw new JGitInternalException(
181182
JGitText.get().exceptionCaughtDuringExecutionOfLsRemoteCommand,
182183
e);
184+
} catch (TransportException e) {
185+
throw new org.eclipse.jgit.api.errors.TransportException(
186+
JGitText.get().exceptionCaughtDuringExecutionOfLsRemoteCommand,
187+
e);
183188
} finally {
184189
if (fc != null)
185190
fc.close();
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
/*
2+
* Copyright (C) 2012, Matthias Sohn <[email protected]> and
3+
* other copyright owners as documented in the project's IP log.
4+
*
5+
* This program and the accompanying materials are made available under the
6+
* terms of the Eclipse Distribution License v1.0 which accompanies this
7+
* distribution, is reproduced below, and is available at
8+
* http://www.eclipse.org/org/documents/edl-v10.php
9+
*
10+
* All rights reserved.
11+
*
12+
* Redistribution and use in source and binary forms, with or without
13+
* modification, are permitted provided that the following conditions are met:
14+
*
15+
* - Redistributions of source code must retain the above copyright notice, this
16+
* list of conditions and the following disclaimer.
17+
*
18+
* - Redistributions in binary form must reproduce the above copyright notice,
19+
* this list of conditions and the following disclaimer in the documentation
20+
* and/or other materials provided with the distribution.
21+
*
22+
* - Neither the name of the Eclipse Foundation, Inc. nor the names of its
23+
* contributors may be used to endorse or promote products derived from this
24+
* software without specific prior written permission.
25+
*
26+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
27+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
29+
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
30+
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32+
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
33+
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
34+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
35+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
36+
* POSSIBILITY OF SUCH DAMAGE.
37+
*/
38+
package org.eclipse.jgit.api.errors;
39+
40+
/**
41+
* Exception thrown when transport operation failed
42+
*/
43+
public class TransportException extends GitAPIException {
44+
private static final long serialVersionUID = 1L;
45+
46+
/**
47+
* @param msg
48+
* message describing the transport failure.
49+
*/
50+
public TransportException(String msg) {
51+
super(msg);
52+
}
53+
54+
/**
55+
* @param msg
56+
* message describing the transport exception.
57+
* @param cause
58+
* why the transport failed.
59+
*/
60+
public TransportException(String msg, Throwable cause) {
61+
super(msg, cause);
62+
}
63+
}

0 commit comments

Comments
 (0)