Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Lay2011-02-16 14:46:26 +0000
committerMatthias Sohn2011-02-20 23:54:02 +0000
commit68064ed33929042e15749743e251c82e41871005 (patch)
tree92b5fa53cb0d3a9235c9d0acac9417c4c4891b21
parentbd1c1156a06576f4339af4cb9a5cfddfcc80154e (diff)
downloadjgit-68064ed33929042e15749743e251c82e41871005.tar.gz
jgit-68064ed33929042e15749743e251c82e41871005.tar.xz
jgit-68064ed33929042e15749743e251c82e41871005.zip
Fix NullPointer when pulling from a deleted local branch
A checked Exception is thrown instead. The reason for throwing an Exception is that the state of the repository is inconsistent in this case: There is a merge configuration containing a non-existing local branch. Ideally the deletion of a local branch should also delete the corresponding merge configuration. Bug: 337315 Change-Id: I8ed57d5aaed60aaab685fc11a8695e474e60215f Signed-off-by: Stefan Lay <stefan.lay@sap.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/api/PullCommand.java5
1 files changed, 4 insertions, 1 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/PullCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/PullCommand.java
index f505674117..1c86bd6638 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/PullCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/PullCommand.java
@@ -138,7 +138,7 @@ public class PullCommand extends GitCommand<PullResult> {
*/
public PullResult call() throws WrongRepositoryStateException,
InvalidConfigurationException, DetachedHeadException,
- InvalidRemoteException, CanceledException {
+ InvalidRemoteException, CanceledException, RefNotFoundException {
checkCallable();
monitor.beginTask(JGitText.get().pullTaskName, 2);
@@ -248,6 +248,9 @@ public class PullCommand extends GitCommand<PullResult> {
} else {
try {
commitToMerge = repo.resolve(remoteBranchName);
+ if (commitToMerge == null)
+ throw new RefNotFoundException(MessageFormat.format(
+ JGitText.get().refNotResolved, remoteBranchName));
} catch (IOException e) {
throw new JGitInternalException(
JGitText.get().exceptionCaughtDuringExecutionOfPullCommand,

Back to the top