tree 27c81ce1ed04904f78c9c5dfcc1422765bbf0193
parent 8a379ce28ebbaf89c24b2c4bae2863ee5ab01dd1
author Edwin Kempin <ekempin@google.com> 1574327836 +0100
committer Edwin Kempin <ekempin@google.com> 1574328056 +0100

DeleteMembers: Do not fail if member input contains null or empty string

I'm not sure how to reproduce this via REST, but we saw in our logs that
this is happening [1]. Via the Java API it's easy to reproduce.

[1]
AutoRetry: restapi.group.DeleteMembers failed, retry with tracing enabled [CONTEXT forced=true TRACE_ID="retry-on-failure-1574282678933-f84acb17" ]
java.lang.NullPointerException
        at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:878)
        at com.google.common.primitives.Longs.tryParse(Longs.java:396)
        at com.google.common.primitives.Ints.tryParse(Ints.java:741)
        at com.google.common.primitives.Ints.tryParse(Ints.java:716)
        at com.google.gerrit.entities.Account$Id.tryParse(Account.java:58)
        at com.google.gerrit.server.account.AccountResolver$ByExactAccountId.tryParse(AccountResolver.java:287)
        at com.google.gerrit.server.account.AccountResolver$Searcher.trySearch(AccountResolver.java:226)
        at com.google.gerrit.server.account.AccountResolver.searchImpl(AccountResolver.java:575)
        at com.google.gerrit.server.account.AccountResolver.resolve(AccountResolver.java:519)
        at com.google.gerrit.server.restapi.group.DeleteMembers.apply(DeleteMembers.java:71)
        at com.google.gerrit.server.restapi.group.DeleteMembers.apply(DeleteMembers.java:44)
        at com.google.gerrit.httpd.restapi.RestApiServlet.lambda$invokeRestModifyViewWithRetry$4(RestApiServlet.java:740)
        at com.github.rholder.retry.AttemptTimeLimiters$NoAttemptTimeLimit.call(AttemptTimeLimiters.java:78)
        at com.github.rholder.retry.Retryer.call(Retryer.java:160)
        at com.google.gerrit.server.update.RetryHelper.executeWithTimeoutCount(RetryHelper.java:417)
        at com.google.gerrit.server.update.RetryHelper.executeWithAttemptAndTimeoutCount(RetryHelper.java:368)
        at com.google.gerrit.server.update.RetryHelper.execute(RetryHelper.java:271)
        at com.google.gerrit.httpd.restapi.RestApiServlet.invokeRestEndpointWithRetry(RestApiServlet.java:820)
        at com.google.gerrit.httpd.restapi.RestApiServlet.invokeRestModifyViewWithRetry(RestApiServlet.java:735)
        at com.google.gerrit.httpd.restapi.RestApiServlet.service(RestApiServlet.java:511)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        ...

Signed-off-by: Edwin Kempin <ekempin@google.com>
Change-Id: I0e136153cc38946f8c4f5abdf4aabc0ec4aa801a
