diff --git a/hooks-its/src/main/java/com/googlesource/gerrit/plugins/hooks/util/IssueExtractor.java b/hooks-its/src/main/java/com/googlesource/gerrit/plugins/hooks/util/IssueExtractor.java
index 701e562..c6d4b3d 100644
--- a/hooks-its/src/main/java/com/googlesource/gerrit/plugins/hooks/util/IssueExtractor.java
+++ b/hooks-its/src/main/java/com/googlesource/gerrit/plugins/hooks/util/IssueExtractor.java
@@ -40,23 +40,13 @@
     Matcher matcher = pattern.matcher(haystack);
 
     while (matcher.find()) {
-      String issueId = extractMatchedWorkItems(matcher);
-      if (issueId != null) {
-        issues.add(issueId);
-      }
+      int groupIdx = Math.min(matcher.groupCount(), 1);
+      issues.add(matcher.group(groupIdx));
     }
 
     return issues.toArray(new String[issues.size()]);
   }
 
-  public String extractMatchedWorkItems(Matcher matcher) {
-    int groupCount = matcher.groupCount();
-    if (groupCount >= 1)
-      return matcher.group(1);
-    else
-      return null;
-  }
-
   /**
    * Gets the regular expression used to identify issue ids.
    * @return the regular expression, or {@code null}, if there is no pattern
