Browse Source

Fix NPE in URIish when parsing an empty URI

Change-Id: Id1c42dc9843f62c581b9904b02150de53cf7777c
Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
stable-1.0
Ketan Padegaonkar 14 years ago committed by Chris Aniszczyk
parent
commit
f953a35e9a
  1. 20
      org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/URIishTest.java
  2. 5
      org.eclipse.jgit/src/org/eclipse/jgit/transport/URIish.java
  3. 11
      org.eclipse.jgit/src/org/eclipse/jgit/util/StringUtils.java

20
org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/URIishTest.java

@ -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";

5
org.eclipse.jgit/src/org/eclipse/jgit/transport/URIish.java

@ -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);

11
org.eclipse.jgit/src/org/eclipse/jgit/util/StringUtils.java

@ -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;
}
}

Loading…
Cancel
Save