From 9597c41ea9db20d769f7b8c54eafa207824e5bd6 Mon Sep 17 00:00:00 2001 From: Christian Halstrick Date: Sat, 8 Nov 2014 18:46:25 +0100 Subject: Fix possible NPE in IndexDiff when not all submodules are cloned The latest changes to IndexDiff just assumed that all configured submodules are allways cloned. If a configured submodule did not exist an exception was thrown. This is fixed by this commit. Bug: 450567 Change-Id: Iabe3b196d998c19483082e5720038ebddaeb1890 --- .../tst/org/eclipse/jgit/submodule/SubmoduleWalkTest.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'org.eclipse.jgit.test/tst') diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/submodule/SubmoduleWalkTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/submodule/SubmoduleWalkTest.java index 383ff5011c..251938fece 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/submodule/SubmoduleWalkTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/submodule/SubmoduleWalkTest.java @@ -56,11 +56,15 @@ import java.io.File; import java.io.FileWriter; import java.io.IOException; +import org.eclipse.jgit.api.Git; +import org.eclipse.jgit.api.Status; +import org.eclipse.jgit.api.errors.GitAPIException; import org.eclipse.jgit.dircache.DirCache; import org.eclipse.jgit.dircache.DirCacheEditor; import org.eclipse.jgit.dircache.DirCacheEditor.PathEdit; import org.eclipse.jgit.dircache.DirCacheEntry; import org.eclipse.jgit.errors.ConfigInvalidException; +import org.eclipse.jgit.errors.NoWorkTreeException; import org.eclipse.jgit.junit.RepositoryTestCase; import org.eclipse.jgit.junit.TestRepository; import org.eclipse.jgit.lib.Config; @@ -98,7 +102,7 @@ public class SubmoduleWalkTest extends RepositoryTestCase { @Test public void repositoryWithRootLevelSubmodule() throws IOException, - ConfigInvalidException { + ConfigInvalidException, NoWorkTreeException, GitAPIException { final ObjectId id = ObjectId .fromString("abcd1234abcd1234abcd1234abcd1234abcd1234"); final String path = "sub"; @@ -124,6 +128,8 @@ public class SubmoduleWalkTest extends RepositoryTestCase { assertNull(gen.getModulesUpdate()); assertNull(gen.getModulesUrl()); assertNull(gen.getRepository()); + Status status = Git.wrap(db).status().call(); + assertTrue(!status.isClean()); assertFalse(gen.next()); } -- cgit v1.2.3