Handle case where CanonicalWebUrl is null Change-Id: I232e7e81bd3b3230730d93a56499ae94bfdb0fec
diff --git a/src/main/java/com/googlesource/gerrit/plugins/eventseiffel/mapping/EiffelEventFactory.java b/src/main/java/com/googlesource/gerrit/plugins/eventseiffel/mapping/EiffelEventFactory.java index addae54..ef3547c 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/eventseiffel/mapping/EiffelEventFactory.java +++ b/src/main/java/com/googlesource/gerrit/plugins/eventseiffel/mapping/EiffelEventFactory.java
@@ -44,6 +44,7 @@ import java.util.List; import java.util.Optional; import java.util.UUID; +import org.eclipse.jgit.util.SystemReader; public class EiffelEventFactory { public static class Provider implements com.google.inject.Provider<EiffelEventFactory> { @@ -112,19 +113,22 @@ purl.append("@" + pluginVersion); } this.packageUrl = purl.toString(); - this.host = URI.create(webUrl).getHost(); + if (webUrl != null) { + this.host = URI.create(webUrl).getHost(); + } else { + this.host = SystemReader.getInstance().getHostname(); + } this.pluginName = pluginName; this.namespace = namespace.orElse(host); - StringBuilder commitEndpoint = new StringBuilder(); - commitEndpoint.append(webUrl); - if (!webUrl.endsWith("/")) { - commitEndpoint.append("/"); + if (webUrl != null) { + commitRestUrl = webUrl + (!webUrl.endsWith("/") ? "/" : "") + "a/projects/%s/commits/%s"; + } else { + commitRestUrl = "/projects/%s/commits/%s"; } - commitEndpoint.append("a/projects/%s/commits/%s"); - commitRestUrl = commitEndpoint.toString(); String sshAddress = parseSshAddress(webUrl, configuredSshAddress); + StringBuilder cloneUrl = new StringBuilder(); cloneUrl.append("ssh://"); cloneUrl.append(sshAddress); @@ -138,11 +142,11 @@ private String parseSshAddress(String webUrl, String configuredSshAddress) { - if (configuredSshAddress.startsWith("*:") || "".equals(configuredSshAddress)) { + if (configuredSshAddress.startsWith("*:") || configuredSshAddress.isEmpty()) { try { configuredSshAddress = new URL(webUrl).getHost() - + (configuredSshAddress.length() > 0 ? configuredSshAddress.substring(1) : ""); + + (!configuredSshAddress.isEmpty() ? configuredSshAddress.substring(1) : ""); } catch (MalformedURLException e) { logger.atWarning().withCause(e).log( "Failed to construct SSH address from web URL \"%s\"", webUrl);