Change-Id: Id1c42dc9843f62c581b9904b02150de53cf7777c Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>tags/v1.0.0.201106011211-rc3
@@ -62,6 +62,26 @@ public class URIishTest { | |||
private static final String GIT_SCHEME = "git://"; | |||
@Test | |||
public void shouldRaiseErrorOnEmptyURI() throws Exception { | |||
try { | |||
new URIish(""); | |||
fail("expecting an exception"); | |||
} catch (URISyntaxException e) { | |||
// expected | |||
} | |||
} | |||
@Test | |||
public void shouldRaiseErrorOnNullURI() throws Exception { | |||
try { | |||
new URIish((String) null); | |||
fail("expecting an exception"); | |||
} catch (URISyntaxException e) { | |||
// expected | |||
} | |||
} | |||
@Test | |||
public void testUnixFile() throws Exception { | |||
final String str = "/home/m y"; |
@@ -55,6 +55,7 @@ import java.util.regex.Pattern; | |||
import org.eclipse.jgit.JGitText; | |||
import org.eclipse.jgit.lib.Constants; | |||
import org.eclipse.jgit.util.StringUtils; | |||
/** | |||
* This URI like construct used for referencing Git archives over the net, as | |||
@@ -193,6 +194,10 @@ public class URIish implements Serializable { | |||
* @throws URISyntaxException | |||
*/ | |||
public URIish(String s) throws URISyntaxException { | |||
if (StringUtils.isEmptyOrNull(s)) { | |||
throw new URISyntaxException("The uri was empty or null", | |||
JGitText.get().cannotParseGitURIish); | |||
} | |||
Matcher matcher = SINGLE_SLASH_FILE_URI.matcher(s); | |||
if (matcher.matches()) { | |||
scheme = matcher.group(1); |
@@ -222,4 +222,15 @@ public final class StringUtils { | |||
private StringUtils() { | |||
// Do not create instances | |||
} | |||
/** | |||
* Test if a string is empty or null. | |||
* | |||
* @param stringValue | |||
* the string to check | |||
* @return <code>true</code> if the string is <code>null</code> or empty | |||
*/ | |||
public static boolean isEmptyOrNull(String stringValue) { | |||
return stringValue == null || stringValue.length() == 0; | |||
} | |||
} |