Avoid NPE when getting groups for anonymous users
It is technically possible to have in Gerrit users without full name
or username or e-mails. In that scenario we are not able to provide
any GitHub membership information and return an empty membership
avoiding NPE during Guice injection.
Change-Id: I5e63a8527956b648df12a3ccb762aa4c45867238
diff --git a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/group/GitHubGroupBackend.java b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/group/GitHubGroupBackend.java
index b6fd5cf..7846d77 100644
--- a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/group/GitHubGroupBackend.java
+++ b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/group/GitHubGroupBackend.java
@@ -26,6 +26,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.google.common.base.Strings;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.ImmutableSet.Builder;
import com.google.gerrit.common.data.GroupDescription.Basic;
@@ -120,6 +121,11 @@
@Override
public GroupMembership membershipsOf(IdentifiedUser user) {
- return ghMembershipProvider.get(user.getUserName());
+ String username = user.getUserName();
+ if (Strings.isNullOrEmpty(username)) {
+ return GroupMembership.EMPTY;
+ } else {
+ return ghMembershipProvider.get(username);
+ }
}
}