Merge branch 'stable-4.9' into stable-4.10

* stable-4.9:
  SubmoduleValidator: Remove unused import of ConfigConstants
  SubmoduleValidator: Permit missing path or url

Change-Id: Ib3c311f1e8d2db95510292a72f2f49825ffce9d9
Signed-off-by: Jonathan Nieder <jrn@google.com>
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/submodule/SubmoduleValidator.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/submodule/SubmoduleValidator.java
index d4bba2d..3651631 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/submodule/SubmoduleValidator.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/submodule/SubmoduleValidator.java
@@ -42,13 +42,16 @@
  */
 package org.eclipse.jgit.internal.submodule;
 
+import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_PATH;
+import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_URL;
+import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_SUBMODULE_SECTION;
+
 import java.io.IOException;
 import java.text.MessageFormat;
 
 import org.eclipse.jgit.errors.ConfigInvalidException;
 import org.eclipse.jgit.internal.JGitText;
 import org.eclipse.jgit.lib.Config;
-import org.eclipse.jgit.lib.ConfigConstants;
 
 /**
  * Validations for the git submodule fields (name, path, uri).
@@ -134,7 +137,6 @@ public static void assertValidSubmoduleUri(String uri)
 	 */
 	public static void assertValidSubmodulePath(String path)
 			throws SubmoduleValidationException {
-
 		if (path.startsWith("-")) { //$NON-NLS-1$
 			throw new SubmoduleValidationException(
 					MessageFormat.format(
@@ -154,19 +156,21 @@ public static void assertValidGitModulesFile(String gitModulesContents)
 		Config c = new Config();
 		try {
 			c.fromText(gitModulesContents);
-			for (String subsection : c.getSubsections(
-					ConfigConstants.CONFIG_SUBMODULE_SECTION)) {
-				String url = c.getString(
-						ConfigConstants.CONFIG_SUBMODULE_SECTION,
-						subsection, ConfigConstants.CONFIG_KEY_URL);
-				assertValidSubmoduleUri(url);
-
+			for (String subsection :
+					c.getSubsections(CONFIG_SUBMODULE_SECTION)) {
 				assertValidSubmoduleName(subsection);
 
+				String url = c.getString(
+						CONFIG_SUBMODULE_SECTION, subsection, CONFIG_KEY_URL);
+				if (url != null) {
+					assertValidSubmoduleUri(url);
+				}
+
 				String path = c.getString(
-						ConfigConstants.CONFIG_SUBMODULE_SECTION, subsection,
-						ConfigConstants.CONFIG_KEY_PATH);
-				assertValidSubmodulePath(path);
+						CONFIG_SUBMODULE_SECTION, subsection, CONFIG_KEY_PATH);
+				if (path != null) {
+					assertValidSubmodulePath(path);
+				}
 			}
 		} catch (ConfigInvalidException e) {
 			throw new IOException(