Merge "Provide hints when logging GitWeb link generation failure"
diff --git a/hooks-its/src/main/java/com/googlesource/gerrit/plugins/hooks/workflow/GerritHookFilterAddRelatedLinkToGitWeb.java b/hooks-its/src/main/java/com/googlesource/gerrit/plugins/hooks/workflow/GerritHookFilterAddRelatedLinkToGitWeb.java
index 17a1759..02d40e2 100644
--- a/hooks-its/src/main/java/com/googlesource/gerrit/plugins/hooks/workflow/GerritHookFilterAddRelatedLinkToGitWeb.java
+++ b/hooks-its/src/main/java/com/googlesource/gerrit/plugins/hooks/workflow/GerritHookFilterAddRelatedLinkToGitWeb.java
@@ -57,6 +57,9 @@
log.debug("Git commit " + hook.refUpdate.newRev + ": " + gitComment);
URL gitUrl = getGitUrl(hook);
+ if (gitUrl == null) {
+ return;
+ }
String[] issues = getIssueIds(gitComment);
for (String issue : issues) {
@@ -68,15 +71,30 @@
}
+ /**
+ * generates the URL to GitWeb for the event
+ *
+ * @return if null is returned, the configuration does not allow to come up
+ * with a GitWeb url. In that case, a message describing the problematic
+ * setting has been logged.
+ */
private URL getGitUrl(RefUpdatedEvent hook) throws MalformedURLException,
UnsupportedEncodingException {
String gerritCanonicalUrl =
gerritConfig.getString("gerrit", null, "canonicalWebUrl");
+ if (gerritCanonicalUrl == null) {
+ log.info( "No canonicalWebUrl configured. Skipping GitWeb link generation");
+ return null;
+ }
if(!gerritCanonicalUrl.endsWith("/")) {
gerritCanonicalUrl += "/";
}
String gitWebUrl = gitWebConfig.getUrl();
+ if (gitWebUrl == null) {
+ log.info( "No url for GitWeb found. Skipping GitWeb link generation");
+ return null;
+ }
if (!gitWebUrl.startsWith("http")) {
gitWebUrl = gerritCanonicalUrl + gitWebUrl;
}