Merge changes I4dab0a6c,I25445abc,I8fee313e

* changes:
  Make TestSubmitRule compliant with docs
  Add tests for revisions/current/test.submit_rule and fix subtle bug
  Add RevisionApi#testSubmitRule
diff --git a/java/com/google/gerrit/acceptance/AccountCreator.java b/java/com/google/gerrit/acceptance/AccountCreator.java
index 69492a9..b8a8776 100644
--- a/java/com/google/gerrit/acceptance/AccountCreator.java
+++ b/java/com/google/gerrit/acceptance/AccountCreator.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.acceptance;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
@@ -144,7 +144,8 @@
   }
 
   public TestAccount get(String username) {
-    return checkNotNull(accounts.get(username), "No TestAccount created for %s", username);
+    return requireNonNull(
+        accounts.get(username), () -> String.format("No TestAccount created for %s ", username));
   }
 
   public void evict(Collection<Account.Id> ids) {
diff --git a/java/com/google/gerrit/acceptance/GerritServer.java b/java/com/google/gerrit/acceptance/GerritServer.java
index bf690ad..9f9cbf9 100644
--- a/java/com/google/gerrit/acceptance/GerritServer.java
+++ b/java/com/google/gerrit/acceptance/GerritServer.java
@@ -15,8 +15,8 @@
 package com.google.gerrit.acceptance;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
+import static java.util.Objects.requireNonNull;
 import static org.apache.log4j.Logger.getLogger;
 
 import com.google.auto.value.AutoValue;
@@ -411,7 +411,7 @@
       CyclicBarrier serverStarted,
       String[] additionalArgs)
       throws Exception {
-    checkNotNull(site);
+    requireNonNull(site);
     ExecutorService daemonService = Executors.newSingleThreadExecutor();
     String[] args =
         Stream.concat(
@@ -535,10 +535,10 @@
       Injector testInjector,
       Daemon daemon,
       @Nullable ExecutorService daemonService) {
-    this.desc = checkNotNull(desc);
+    this.desc = requireNonNull(desc);
     this.sitePath = sitePath;
-    this.testInjector = checkNotNull(testInjector);
-    this.daemon = checkNotNull(daemon);
+    this.testInjector = requireNonNull(testInjector);
+    this.daemon = requireNonNull(daemon);
     this.daemonService = daemonService;
 
     Config cfg = testInjector.getInstance(Key.get(Config.class, GerritServerConfig.class));
diff --git a/java/com/google/gerrit/acceptance/HttpResponse.java b/java/com/google/gerrit/acceptance/HttpResponse.java
index 3e98d71..8132c32 100644
--- a/java/com/google/gerrit/acceptance/HttpResponse.java
+++ b/java/com/google/gerrit/acceptance/HttpResponse.java
@@ -16,8 +16,8 @@
 
 import static com.google.common.collect.ImmutableList.toImmutableList;
 import static java.nio.charset.StandardCharsets.UTF_8;
+import static java.util.Objects.requireNonNull;
 
-import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;
 import java.io.IOException;
 import java.io.InputStreamReader;
@@ -72,13 +72,13 @@
   }
 
   public boolean hasContent() {
-    Preconditions.checkNotNull(response, "Response is not initialized.");
+    requireNonNull(response, "Response is not initialized.");
     return response.getEntity() != null;
   }
 
   public String getEntityContent() throws IOException {
-    Preconditions.checkNotNull(response, "Response is not initialized.");
-    Preconditions.checkNotNull(response.getEntity(), "Response.Entity is not initialized.");
+    requireNonNull(response, "Response is not initialized.");
+    requireNonNull(response.getEntity(), "Response.Entity is not initialized.");
     ByteBuffer buf = IO.readWholeStream(response.getEntity().getContent(), 1024);
     return RawParseUtils.decode(buf.array(), buf.arrayOffset(), buf.limit()).trim();
   }
diff --git a/java/com/google/gerrit/acceptance/InMemoryTestingDatabaseModule.java b/java/com/google/gerrit/acceptance/InMemoryTestingDatabaseModule.java
index b23b6e6..6ee5c09 100644
--- a/java/com/google/gerrit/acceptance/InMemoryTestingDatabaseModule.java
+++ b/java/com/google/gerrit/acceptance/InMemoryTestingDatabaseModule.java
@@ -134,9 +134,7 @@
     try {
       Files.createDirectories(p.resolve("etc"));
     } catch (IOException e) {
-      ProvisionException pe = new ProvisionException(e.getMessage());
-      pe.initCause(e);
-      throw pe;
+      throw new ProvisionException(e.getMessage(), e);
     }
   }
 }
diff --git a/java/com/google/gerrit/acceptance/RestSession.java b/java/com/google/gerrit/acceptance/RestSession.java
index 1a3c029..e77e527 100644
--- a/java/com/google/gerrit/acceptance/RestSession.java
+++ b/java/com/google/gerrit/acceptance/RestSession.java
@@ -15,8 +15,8 @@
 package com.google.gerrit.acceptance;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
+import static java.util.Objects.requireNonNull;
 
-import com.google.common.base.Preconditions;
 import com.google.common.net.HttpHeaders;
 import com.google.gerrit.common.Nullable;
 import com.google.gerrit.extensions.restapi.RawInput;
@@ -81,7 +81,7 @@
   }
 
   public RestResponse putRaw(String endPoint, RawInput stream) throws IOException {
-    Preconditions.checkNotNull(stream);
+    requireNonNull(stream);
     Request put = Request.Put(getUrl(endPoint));
     put.addHeader(new BasicHeader("Content-Type", stream.getContentType()));
     put.body(
diff --git a/java/com/google/gerrit/common/RawInputUtil.java b/java/com/google/gerrit/common/RawInputUtil.java
index f59d4a9..e102eab 100644
--- a/java/com/google/gerrit/common/RawInputUtil.java
+++ b/java/com/google/gerrit/common/RawInputUtil.java
@@ -14,10 +14,11 @@
 
 package com.google.gerrit.common;
 
+import static com.google.common.base.Preconditions.checkArgument;
 import static java.nio.charset.StandardCharsets.UTF_8;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.annotations.GwtIncompatible;
-import com.google.common.base.Preconditions;
 import com.google.gerrit.extensions.restapi.RawInput;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
@@ -31,8 +32,8 @@
   }
 
   public static RawInput create(byte[] bytes, String contentType) {
-    Preconditions.checkNotNull(bytes);
-    Preconditions.checkArgument(bytes.length > 0);
+    requireNonNull(bytes);
+    checkArgument(bytes.length > 0);
     return new RawInput() {
       @Override
       public InputStream getInputStream() throws IOException {
diff --git a/java/com/google/gerrit/common/data/AccessSection.java b/java/com/google/gerrit/common/data/AccessSection.java
index 0530cc0..49948f8f 100644
--- a/java/com/google/gerrit/common/data/AccessSection.java
+++ b/java/com/google/gerrit/common/data/AccessSection.java
@@ -14,6 +14,8 @@
 
 package com.google.gerrit.common.data;
 
+import static java.util.Objects.requireNonNull;
+
 import com.google.gerrit.common.Nullable;
 import com.google.gerrit.reviewdb.client.Project;
 import java.util.ArrayList;
@@ -43,7 +45,7 @@
   }
 
   public void setPermissions(List<Permission> list) {
-    checkNotNull(list);
+    requireNonNull(list);
 
     Set<String> names = new HashSet<>();
     for (Permission p : list) {
@@ -62,7 +64,7 @@
 
   @Nullable
   public Permission getPermission(String name, boolean create) {
-    checkNotNull(name);
+    requireNonNull(name);
 
     if (permissions != null) {
       for (Permission p : permissions) {
@@ -86,7 +88,7 @@
   }
 
   public void addPermission(Permission permission) {
-    checkNotNull(permission);
+    requireNonNull(permission);
 
     if (permissions == null) {
       permissions = new ArrayList<>();
@@ -102,12 +104,12 @@
   }
 
   public void remove(Permission permission) {
-    checkNotNull(permission);
+    requireNonNull(permission);
     removePermission(permission.getName());
   }
 
   public void removePermission(String name) {
-    checkNotNull(name);
+    requireNonNull(name);
 
     if (permissions != null) {
       permissions.removeIf(permission -> name.equalsIgnoreCase(permission.getName()));
@@ -115,7 +117,7 @@
   }
 
   public void mergeFrom(AccessSection section) {
-    checkNotNull(section);
+    requireNonNull(section);
 
     for (Permission src : section.getPermissions()) {
       Permission dst = getPermission(src.getName());
@@ -127,13 +129,6 @@
     }
   }
 
-  // TODO(ekempin): Once the GWT UI is gone use com.google.common.base.Preconditions.checkNotNull
-  private static void checkNotNull(Object reference) {
-    if (reference == null) {
-      throw new NullPointerException();
-    }
-  }
-
   @Override
   public int compareTo(AccessSection o) {
     return comparePattern().compareTo(o.comparePattern());
diff --git a/java/com/google/gerrit/common/data/SubmitRequirement.java b/java/com/google/gerrit/common/data/SubmitRequirement.java
index 0a8d5ac0..0c978ca 100644
--- a/java/com/google/gerrit/common/data/SubmitRequirement.java
+++ b/java/com/google/gerrit/common/data/SubmitRequirement.java
@@ -14,10 +14,11 @@
 
 package com.google.gerrit.common.data;
 
+import static com.google.common.base.Preconditions.checkState;
+
 import com.google.auto.value.AutoValue;
 import com.google.common.annotations.GwtIncompatible;
 import com.google.common.base.CharMatcher;
-import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableMap;
 import java.util.Map;
 
@@ -49,7 +50,7 @@
 
     public SubmitRequirement build() {
       SubmitRequirement requirement = autoBuild();
-      Preconditions.checkState(
+      checkState(
           validateType(requirement.type()),
           "SubmitRequirement's type contains non alphanumerical symbols.");
       return requirement;
diff --git a/java/com/google/gerrit/elasticsearch/ElasticChangeIndex.java b/java/com/google/gerrit/elasticsearch/ElasticChangeIndex.java
index d7c8b00..1224c61 100644
--- a/java/com/google/gerrit/elasticsearch/ElasticChangeIndex.java
+++ b/java/com/google/gerrit/elasticsearch/ElasticChangeIndex.java
@@ -14,13 +14,13 @@
 
 package com.google.gerrit.elasticsearch;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.gerrit.reviewdb.server.ReviewDbCodecs.APPROVAL_CODEC;
 import static com.google.gerrit.reviewdb.server.ReviewDbCodecs.CHANGE_CODEC;
 import static com.google.gerrit.reviewdb.server.ReviewDbCodecs.PATCH_SET_CODEC;
 import static com.google.gerrit.server.index.change.ChangeIndexRewriter.CLOSED_STATUSES;
 import static com.google.gerrit.server.index.change.ChangeIndexRewriter.OPEN_STATUSES;
 import static java.nio.charset.StandardCharsets.UTF_8;
+import static java.util.Objects.requireNonNull;
 import static org.apache.commons.codec.binary.Base64.decodeBase64;
 
 import com.google.common.collect.FluentIterable;
@@ -218,7 +218,7 @@
     if (c == null) {
       int id = source.get(ChangeField.LEGACY_ID.getName()).getAsInt();
       // IndexUtils#changeFields ensures either CHANGE or PROJECT is always present.
-      String projectName = checkNotNull(source.get(ChangeField.PROJECT.getName()).getAsString());
+      String projectName = requireNonNull(source.get(ChangeField.PROJECT.getName()).getAsString());
       return changeDataFactory.create(
           db.get(), new Project.NameKey(projectName), new Change.Id(id));
     }
diff --git a/java/com/google/gerrit/extensions/api/access/PluginPermission.java b/java/com/google/gerrit/extensions/api/access/PluginPermission.java
index 449135d..1dc5cb6 100644
--- a/java/com/google/gerrit/extensions/api/access/PluginPermission.java
+++ b/java/com/google/gerrit/extensions/api/access/PluginPermission.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.extensions.api.access;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import java.util.Objects;
 
@@ -29,8 +29,8 @@
   }
 
   public PluginPermission(String pluginName, String capability, boolean fallBackToAdmin) {
-    this.pluginName = checkNotNull(pluginName, "pluginName");
-    this.capability = checkNotNull(capability, "capability");
+    this.pluginName = requireNonNull(pluginName, "pluginName");
+    this.capability = requireNonNull(capability, "capability");
     this.fallBackToAdmin = fallBackToAdmin;
   }
 
diff --git a/java/com/google/gerrit/extensions/auth/oauth/OAuthToken.java b/java/com/google/gerrit/extensions/auth/oauth/OAuthToken.java
index 84b6a04..8d5e744 100644
--- a/java/com/google/gerrit/extensions/auth/oauth/OAuthToken.java
+++ b/java/com/google/gerrit/extensions/auth/oauth/OAuthToken.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.extensions.auth.oauth;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.base.MoreObjects;
 import com.google.common.base.Strings;
@@ -55,9 +55,9 @@
 
   public OAuthToken(
       String token, String secret, String raw, long expiresAt, @Nullable String providerId) {
-    this.token = checkNotNull(token, "token");
-    this.secret = checkNotNull(secret, "secret");
-    this.raw = checkNotNull(raw, "raw");
+    this.token = requireNonNull(token, "token");
+    this.secret = requireNonNull(secret, "secret");
+    this.raw = requireNonNull(raw, "raw");
     this.expiresAt = expiresAt;
     this.providerId = Strings.emptyToNull(providerId);
   }
diff --git a/java/com/google/gerrit/extensions/registration/PrivateInternals_DynamicMapImpl.java b/java/com/google/gerrit/extensions/registration/PrivateInternals_DynamicMapImpl.java
index 1973f70..cef9e0c 100644
--- a/java/com/google/gerrit/extensions/registration/PrivateInternals_DynamicMapImpl.java
+++ b/java/com/google/gerrit/extensions/registration/PrivateInternals_DynamicMapImpl.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.extensions.registration;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.gerrit.extensions.annotations.Export;
 import com.google.inject.Key;
@@ -33,7 +33,7 @@
    * @return handle to remove the item at a later point in time.
    */
   public RegistrationHandle put(String pluginName, String exportName, Provider<T> item) {
-    checkNotNull(item);
+    requireNonNull(item);
     final NamePair key = new NamePair(pluginName, exportName);
     items.put(key, item);
     return new RegistrationHandle() {
@@ -56,7 +56,7 @@
    *     the collection.
    */
   public ReloadableRegistrationHandle<T> put(String pluginName, Key<T> key, Provider<T> item) {
-    checkNotNull(item);
+    requireNonNull(item);
     String exportName = ((Export) key.getAnnotation()).value();
     NamePair np = new NamePair(pluginName, exportName);
     items.put(np, item);
diff --git a/java/com/google/gerrit/httpd/HtmlDomUtil.java b/java/com/google/gerrit/httpd/HtmlDomUtil.java
index 9acc754..25ae71c 100644
--- a/java/com/google/gerrit/httpd/HtmlDomUtil.java
+++ b/java/com/google/gerrit/httpd/HtmlDomUtil.java
@@ -84,9 +84,7 @@
       serializer.transform(domSource, streamResult);
       return out.toString();
     } catch (TransformerException e) {
-      IOException r = new IOException("Error transforming page");
-      r.initCause(e);
-      throw r;
+      throw new IOException("Error transforming page", e);
     }
   }
 
diff --git a/java/com/google/gerrit/httpd/raw/ResourceServlet.java b/java/com/google/gerrit/httpd/raw/ResourceServlet.java
index 3244232..4b44af4 100644
--- a/java/com/google/gerrit/httpd/raw/ResourceServlet.java
+++ b/java/com/google/gerrit/httpd/raw/ResourceServlet.java
@@ -14,12 +14,12 @@
 
 package com.google.gerrit.httpd.raw;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.net.HttpHeaders.CONTENT_ENCODING;
 import static com.google.common.net.HttpHeaders.ETAG;
 import static com.google.common.net.HttpHeaders.IF_MODIFIED_SINCE;
 import static com.google.common.net.HttpHeaders.IF_NONE_MATCH;
 import static com.google.common.net.HttpHeaders.LAST_MODIFIED;
+import static java.util.Objects.requireNonNull;
 import static java.util.concurrent.TimeUnit.DAYS;
 import static java.util.concurrent.TimeUnit.MINUTES;
 import static javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR;
@@ -111,7 +111,7 @@
       boolean refresh,
       boolean cacheOnClient,
       int cacheFileSizeLimitBytes) {
-    this.cache = checkNotNull(cache, "cache");
+    this.cache = requireNonNull(cache, "cache");
     this.refresh = refresh;
     this.cacheOnClient = cacheOnClient;
     this.cacheFileSizeLimitBytes = cacheFileSizeLimitBytes;
@@ -308,9 +308,9 @@
     final byte[] raw;
 
     Resource(FileTime lastModified, String contentType, byte[] raw) {
-      this.lastModified = checkNotNull(lastModified, "lastModified");
-      this.contentType = checkNotNull(contentType, "contentType");
-      this.raw = checkNotNull(raw, "raw");
+      this.lastModified = requireNonNull(lastModified, "lastModified");
+      this.contentType = requireNonNull(contentType, "contentType");
+      this.raw = requireNonNull(raw, "raw");
       this.etag = Hashing.murmur3_128().hashBytes(raw).toString();
     }
 
diff --git a/java/com/google/gerrit/httpd/raw/StaticModule.java b/java/com/google/gerrit/httpd/raw/StaticModule.java
index 20b799b..664d881 100644
--- a/java/com/google/gerrit/httpd/raw/StaticModule.java
+++ b/java/com/google/gerrit/httpd/raw/StaticModule.java
@@ -365,9 +365,7 @@
             && GerritLauncher.NOT_ARCHIVED.equals(e.getMessage())) {
           return null;
         }
-        ProvisionException pe = new ProvisionException("Error reading gerrit.war");
-        pe.initCause(e);
-        throw pe;
+        throw new ProvisionException("Error reading gerrit.war", e);
       }
       return war;
     }
@@ -395,9 +393,7 @@
           return dstwar.getAbsoluteFile().toPath();
         }
       } catch (IOException e) {
-        ProvisionException pe = new ProvisionException("Cannot create war tempdir");
-        pe.initCause(e);
-        throw pe;
+        throw new ProvisionException("Cannot create war tempdir", e);
       }
     }
   }
diff --git a/java/com/google/gerrit/httpd/restapi/RestApiServlet.java b/java/com/google/gerrit/httpd/restapi/RestApiServlet.java
index 22d05a6..519a218 100644
--- a/java/com/google/gerrit/httpd/restapi/RestApiServlet.java
+++ b/java/com/google/gerrit/httpd/restapi/RestApiServlet.java
@@ -16,7 +16,6 @@
 package com.google.gerrit.httpd.restapi;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static com.google.common.flogger.LazyArgs.lazy;
 import static com.google.common.net.HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS;
@@ -33,6 +32,7 @@
 import static java.math.RoundingMode.CEILING;
 import static java.nio.charset.StandardCharsets.ISO_8859_1;
 import static java.nio.charset.StandardCharsets.UTF_8;
+import static java.util.Objects.requireNonNull;
 import static java.util.stream.Collectors.joining;
 import static javax.servlet.http.HttpServletResponse.SC_ACCEPTED;
 import static javax.servlet.http.HttpServletResponse.SC_BAD_REQUEST;
@@ -268,7 +268,7 @@
       Provider<? extends RestCollection<? extends RestResource, ? extends RestResource>> members) {
     @SuppressWarnings("unchecked")
     Provider<RestCollection<RestResource, RestResource>> n =
-        (Provider<RestCollection<RestResource, RestResource>>) checkNotNull((Object) members);
+        (Provider<RestCollection<RestResource, RestResource>>) requireNonNull((Object) members);
     this.globals = globals;
     this.members = n;
   }
diff --git a/java/com/google/gerrit/httpd/rpc/project/ProjectAccessHandler.java b/java/com/google/gerrit/httpd/rpc/project/ProjectAccessHandler.java
index 0bcd8f8..44c8966 100644
--- a/java/com/google/gerrit/httpd/rpc/project/ProjectAccessHandler.java
+++ b/java/com/google/gerrit/httpd/rpc/project/ProjectAccessHandler.java
@@ -14,8 +14,8 @@
 
 package com.google.gerrit.httpd.rpc.project;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.gerrit.common.ProjectAccessUtil.mergeSections;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.base.MoreObjects;
 import com.google.gerrit.common.data.AccessSection;
@@ -235,7 +235,7 @@
 
   /** Provide a local cache for {@code ProjectPermission.WRITE_CONFIG} capability. */
   private boolean canWriteConfig() throws PermissionBackendException {
-    checkNotNull(user);
+    requireNonNull(user);
 
     if (canWriteConfig != null) {
       return canWriteConfig;
diff --git a/java/com/google/gerrit/index/FieldDef.java b/java/com/google/gerrit/index/FieldDef.java
index b1ffac1..beb9c07 100644
--- a/java/com/google/gerrit/index/FieldDef.java
+++ b/java/com/google/gerrit/index/FieldDef.java
@@ -15,7 +15,7 @@
 package com.google.gerrit.index;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.base.CharMatcher;
 import com.google.gwtorm.server.OrmException;
@@ -69,8 +69,8 @@
     private boolean stored;
 
     public Builder(FieldType<T> type, String name) {
-      this.type = checkNotNull(type);
-      this.name = checkNotNull(name);
+      this.type = requireNonNull(type);
+      this.name = requireNonNull(name);
     }
 
     public Builder<T> stored() {
@@ -99,10 +99,10 @@
         !(repeatable && type == FieldType.INTEGER_RANGE),
         "Range queries against repeated fields are unsupported");
     this.name = checkName(name);
-    this.type = checkNotNull(type);
+    this.type = requireNonNull(type);
     this.stored = stored;
     this.repeatable = repeatable;
-    this.getter = checkNotNull(getter);
+    this.getter = requireNonNull(getter);
   }
 
   private static String checkName(String name) {
diff --git a/java/com/google/gerrit/index/SchemaDefinitions.java b/java/com/google/gerrit/index/SchemaDefinitions.java
index f9c690c..e8efd22 100644
--- a/java/com/google/gerrit/index/SchemaDefinitions.java
+++ b/java/com/google/gerrit/index/SchemaDefinitions.java
@@ -15,7 +15,7 @@
 package com.google.gerrit.index;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableSortedMap;
 import com.google.common.collect.Iterables;
@@ -34,7 +34,7 @@
   private final ImmutableSortedMap<Integer, Schema<V>> schemas;
 
   protected SchemaDefinitions(String name, Class<V> valueClass) {
-    this.name = checkNotNull(name);
+    this.name = requireNonNull(name);
     this.schemas = SchemaUtil.schemasFromClass(getClass(), valueClass);
   }
 
diff --git a/java/com/google/gerrit/index/SiteIndexer.java b/java/com/google/gerrit/index/SiteIndexer.java
index 9c56396..c3ab8a4 100644
--- a/java/com/google/gerrit/index/SiteIndexer.java
+++ b/java/com/google/gerrit/index/SiteIndexer.java
@@ -14,8 +14,8 @@
 
 package com.google.gerrit.index;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static java.nio.charset.StandardCharsets.UTF_8;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.base.Stopwatch;
 import com.google.common.flogger.FluentLogger;
@@ -73,11 +73,11 @@
   }
 
   public void setProgressOut(OutputStream out) {
-    progressOut = checkNotNull(out);
+    progressOut = requireNonNull(out);
   }
 
   public void setVerboseOut(OutputStream out) {
-    verboseWriter = newPrintWriter(checkNotNull(out));
+    verboseWriter = newPrintWriter(requireNonNull(out));
   }
 
   public abstract Result indexAll(I index);
diff --git a/java/com/google/gerrit/index/project/ProjectIndexRewriter.java b/java/com/google/gerrit/index/project/ProjectIndexRewriter.java
index 096bb64..9e2bbdc 100644
--- a/java/com/google/gerrit/index/project/ProjectIndexRewriter.java
+++ b/java/com/google/gerrit/index/project/ProjectIndexRewriter.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.index.project;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.gerrit.index.IndexRewriter;
 import com.google.gerrit.index.QueryOptions;
@@ -36,7 +36,7 @@
   public Predicate<ProjectData> rewrite(Predicate<ProjectData> in, QueryOptions opts)
       throws QueryParseException {
     ProjectIndex index = indexes.getSearchIndex();
-    checkNotNull(index, "no active search index configured for projects");
+    requireNonNull(index, "no active search index configured for projects");
     return new IndexedProjectQuery(index, in, opts);
   }
 }
diff --git a/java/com/google/gerrit/lifecycle/LifecycleManager.java b/java/com/google/gerrit/lifecycle/LifecycleManager.java
index ba3d7b2..4f09a09 100644
--- a/java/com/google/gerrit/lifecycle/LifecycleManager.java
+++ b/java/com/google/gerrit/lifecycle/LifecycleManager.java
@@ -14,7 +14,8 @@
 
 package com.google.gerrit.lifecycle;
 
-import com.google.common.base.Preconditions;
+import static com.google.common.base.Preconditions.checkState;
+
 import com.google.common.collect.Lists;
 import com.google.common.flogger.FluentLogger;
 import com.google.gerrit.extensions.events.LifecycleListener;
@@ -69,7 +70,7 @@
    * @param injector the injector to add.
    */
   public void add(Injector injector) {
-    Preconditions.checkState(startedIndex < 0, "Already started");
+    checkState(startedIndex < 0, "Already started");
     for (Binding<LifecycleListener> binding : get(injector)) {
       add(binding.getProvider());
     }
diff --git a/java/com/google/gerrit/lucene/LuceneChangeIndex.java b/java/com/google/gerrit/lucene/LuceneChangeIndex.java
index 7dfaac1..66db468 100644
--- a/java/com/google/gerrit/lucene/LuceneChangeIndex.java
+++ b/java/com/google/gerrit/lucene/LuceneChangeIndex.java
@@ -14,7 +14,6 @@
 
 package com.google.gerrit.lucene;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.gerrit.lucene.AbstractLuceneIndex.sortFieldName;
 import static com.google.gerrit.reviewdb.server.ReviewDbCodecs.APPROVAL_CODEC;
 import static com.google.gerrit.reviewdb.server.ReviewDbCodecs.CHANGE_CODEC;
@@ -24,6 +23,7 @@
 import static com.google.gerrit.server.index.change.ChangeField.PROJECT;
 import static com.google.gerrit.server.index.change.ChangeIndexRewriter.CLOSED_STATUSES;
 import static com.google.gerrit.server.index.change.ChangeIndexRewriter.OPEN_STATUSES;
+import static java.util.Objects.requireNonNull;
 import static java.util.stream.Collectors.toList;
 
 import com.google.common.base.Function;
@@ -281,7 +281,7 @@
         throws QueryParseException {
       this.indexes = indexes;
       this.predicate = predicate;
-      this.query = checkNotNull(queryBuilder.toQuery(predicate), "null query from Lucene");
+      this.query = requireNonNull(queryBuilder.toQuery(predicate), "null query from Lucene");
       this.opts = opts;
       this.sort = sort;
       this.rawDocumentMapper = rawDocumentMapper;
diff --git a/java/com/google/gerrit/pgm/Daemon.java b/java/com/google/gerrit/pgm/Daemon.java
index bbd62cc..2249c76 100644
--- a/java/com/google/gerrit/pgm/Daemon.java
+++ b/java/com/google/gerrit/pgm/Daemon.java
@@ -14,9 +14,9 @@
 
 package com.google.gerrit.pgm;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.gerrit.server.schema.DataSourceProvider.Context.MULTI_USER;
 import static java.nio.charset.StandardCharsets.UTF_8;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.MoreObjects;
@@ -500,7 +500,7 @@
   }
 
   private boolean migrateToNoteDb() {
-    return migrateToNoteDb || NoteDbMigrator.getAutoMigrate(checkNotNull(config));
+    return migrateToNoteDb || NoteDbMigrator.getAutoMigrate(requireNonNull(config));
   }
 
   private Module createIndexModule() {
diff --git a/java/com/google/gerrit/pgm/ProtobufImport.java b/java/com/google/gerrit/pgm/ProtobufImport.java
index 0732b28..0179b1d 100644
--- a/java/com/google/gerrit/pgm/ProtobufImport.java
+++ b/java/com/google/gerrit/pgm/ProtobufImport.java
@@ -14,9 +14,9 @@
 
 package com.google.gerrit.pgm;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static com.google.gerrit.server.schema.DataSourceProvider.Context.SINGLE_USER;
+import static java.util.Objects.requireNonNull;
 
 import com.google.auto.value.AutoValue;
 import com.google.common.collect.Iterables;
@@ -101,11 +101,9 @@
           Map.Entry<Integer, UnknownFieldSet.Field> e =
               Iterables.getOnlyElement(msg.asMap().entrySet());
           Relation rel =
-              checkNotNull(
+              requireNonNull(
                   relations.get(e.getKey()),
-                  "unknown relation ID %s in message: %s",
-                  e.getKey(),
-                  msg);
+                  String.format("unknown relation ID %s in message: %s", e.getKey(), msg));
           List<ByteString> values = e.getValue().getLengthDelimitedList();
           checkState(values.size() == 1, "expected one string field in message: %s", msg);
           upsert(rel, values.get(0));
diff --git a/java/com/google/gerrit/pgm/Reindex.java b/java/com/google/gerrit/pgm/Reindex.java
index d26e4f71..52d3bd3 100644
--- a/java/com/google/gerrit/pgm/Reindex.java
+++ b/java/com/google/gerrit/pgm/Reindex.java
@@ -14,8 +14,8 @@
 
 package com.google.gerrit.pgm;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.gerrit.server.schema.DataSourceProvider.Context.MULTI_USER;
+import static java.util.Objects.requireNonNull;
 import static java.util.stream.Collectors.toSet;
 
 import com.google.common.collect.Sets;
@@ -132,7 +132,7 @@
       return;
     }
 
-    checkNotNull(indexDefs, "Called this method before injectMembers?");
+    requireNonNull(indexDefs, "Called this method before injectMembers?");
     Set<String> valid = indexDefs.stream().map(IndexDefinition::getName).sorted().collect(toSet());
     Set<String> invalid = Sets.difference(Sets.newHashSet(indices), valid);
     if (invalid.isEmpty()) {
@@ -192,7 +192,8 @@
   private <K, V, I extends Index<K, V>> boolean reindex(IndexDefinition<K, V, I> def)
       throws IOException {
     I index = def.getIndexCollection().getSearchIndex();
-    checkNotNull(index, "no active search index configured for %s", def.getName());
+    requireNonNull(
+        index, () -> String.format("no active search index configured for %s", def.getName()));
     index.markReady(false);
     index.deleteAll();
 
diff --git a/java/com/google/gerrit/reviewdb/server/ReviewDbWrapper.java b/java/com/google/gerrit/reviewdb/server/ReviewDbWrapper.java
index f8e93ae..0deaa57 100644
--- a/java/com/google/gerrit/reviewdb/server/ReviewDbWrapper.java
+++ b/java/com/google/gerrit/reviewdb/server/ReviewDbWrapper.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.reviewdb.server;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.gerrit.reviewdb.client.Account;
 import com.google.gerrit.reviewdb.client.AccountGroup;
@@ -49,7 +49,7 @@
   private boolean inTransaction;
 
   protected ReviewDbWrapper(ReviewDb delegate) {
-    this.delegate = checkNotNull(delegate);
+    this.delegate = requireNonNull(delegate);
   }
 
   public ReviewDb unsafeGetDelegate() {
@@ -161,7 +161,7 @@
     protected final ChangeAccess delegate;
 
     protected ChangeAccessWrapper(ChangeAccess delegate) {
-      this.delegate = checkNotNull(delegate);
+      this.delegate = requireNonNull(delegate);
     }
 
     @Override
@@ -687,7 +687,7 @@
     protected final AccountGroupAccess delegate;
 
     protected AccountGroupAccessWrapper(AccountGroupAccess delegate) {
-      this.delegate = checkNotNull(delegate);
+      this.delegate = requireNonNull(delegate);
     }
 
     @Override
@@ -783,7 +783,7 @@
     protected final AccountGroupNameAccess delegate;
 
     protected AccountGroupNameAccessWrapper(AccountGroupNameAccess delegate) {
-      this.delegate = checkNotNull(delegate);
+      this.delegate = requireNonNull(delegate);
     }
 
     @Override
@@ -875,7 +875,7 @@
     protected final AccountGroupMemberAccess delegate;
 
     protected AccountGroupMemberAccessWrapper(AccountGroupMemberAccess delegate) {
-      this.delegate = checkNotNull(delegate);
+      this.delegate = requireNonNull(delegate);
     }
 
     @Override
@@ -973,7 +973,7 @@
     protected final AccountGroupMemberAuditAccess delegate;
 
     protected AccountGroupMemberAuditAccessWrapper(AccountGroupMemberAuditAccess delegate) {
-      this.delegate = checkNotNull(delegate);
+      this.delegate = requireNonNull(delegate);
     }
 
     @Override
@@ -1073,7 +1073,7 @@
     protected final AccountGroupByIdAccess delegate;
 
     protected AccountGroupByIdAccessWrapper(AccountGroupByIdAccess delegate) {
-      this.delegate = checkNotNull(delegate);
+      this.delegate = requireNonNull(delegate);
     }
 
     @Override
@@ -1175,7 +1175,7 @@
     protected final AccountGroupByIdAudAccess delegate;
 
     protected AccountGroupByIdAudAccessWrapper(AccountGroupByIdAudAccess delegate) {
-      this.delegate = checkNotNull(delegate);
+      this.delegate = requireNonNull(delegate);
     }
 
     @Override
diff --git a/java/com/google/gerrit/server/ApprovalCopier.java b/java/com/google/gerrit/server/ApprovalCopier.java
index 095263e..c3d3b60 100644
--- a/java/com/google/gerrit/server/ApprovalCopier.java
+++ b/java/com/google/gerrit/server/ApprovalCopier.java
@@ -15,7 +15,7 @@
 package com.google.gerrit.server;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.HashBasedTable;
 import com.google.common.collect.ListMultimap;
@@ -152,12 +152,12 @@
       @Nullable Config repoConfig,
       Iterable<PatchSetApproval> dontCopy)
       throws OrmException {
-    checkNotNull(ps, "ps should not be null");
+    requireNonNull(ps, "ps should not be null");
     ChangeData cd = changeDataFactory.create(db, notes);
     try {
       ProjectState project = projectCache.checkedGet(cd.change().getDest().getParentKey());
       ListMultimap<PatchSet.Id, PatchSetApproval> all = cd.approvals();
-      checkNotNull(all, "all should not be null");
+      requireNonNull(all, "all should not be null");
 
       Table<String, Account.Id, PatchSetApproval> wontCopy = HashBasedTable.create();
       for (PatchSetApproval psa : dontCopy) {
diff --git a/java/com/google/gerrit/server/ChangeMessagesUtil.java b/java/com/google/gerrit/server/ChangeMessagesUtil.java
index a6dbb53..969cf38 100644
--- a/java/com/google/gerrit/server/ChangeMessagesUtil.java
+++ b/java/com/google/gerrit/server/ChangeMessagesUtil.java
@@ -14,9 +14,9 @@
 
 package com.google.gerrit.server;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static com.google.gerrit.reviewdb.server.ReviewDbUtil.unwrapDb;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.gerrit.common.Nullable;
@@ -82,7 +82,7 @@
 
   public static ChangeMessage newMessage(
       PatchSet.Id psId, CurrentUser user, Timestamp when, String body, @Nullable String tag) {
-    checkNotNull(psId);
+    requireNonNull(psId);
     Account.Id accountId = user.isInternalUser() ? null : user.getAccountId();
     ChangeMessage m =
         new ChangeMessage(
diff --git a/java/com/google/gerrit/server/CreateGroupPermissionSyncer.java b/java/com/google/gerrit/server/CreateGroupPermissionSyncer.java
index b7bc036..ee0138c 100644
--- a/java/com/google/gerrit/server/CreateGroupPermissionSyncer.java
+++ b/java/com/google/gerrit/server/CreateGroupPermissionSyncer.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 import static java.util.stream.Collectors.toList;
 
 import com.google.common.collect.Sets;
@@ -77,9 +77,11 @@
    */
   public void syncIfNeeded() throws IOException, ConfigInvalidException {
     ProjectState allProjectsState = projectCache.checkedGet(allProjects);
-    checkNotNull(allProjectsState, "Can't obtain project state for " + allProjects);
+    requireNonNull(
+        allProjectsState, () -> String.format("Can't obtain project state for %s", allProjects));
     ProjectState allUsersState = projectCache.checkedGet(allUsers);
-    checkNotNull(allUsersState, "Can't obtain project state for " + allUsers);
+    requireNonNull(
+        allUsersState, () -> String.format("Can't obtain project state for %s", allUsers));
 
     Set<PermissionRule> createGroupsGlobal =
         new HashSet<>(allProjectsState.getCapabilityCollection().createGroup);
diff --git a/java/com/google/gerrit/server/PatchSetUtil.java b/java/com/google/gerrit/server/PatchSetUtil.java
index bf820dd..f6c7abc 100644
--- a/java/com/google/gerrit/server/PatchSetUtil.java
+++ b/java/com/google/gerrit/server/PatchSetUtil.java
@@ -15,10 +15,10 @@
 package com.google.gerrit.server;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.collect.ImmutableMap.toImmutableMap;
 import static com.google.gerrit.server.ChangeUtil.PS_ID_ORDER;
 import static com.google.gerrit.server.notedb.PatchSetState.PUBLISHED;
+import static java.util.Objects.requireNonNull;
 import static java.util.function.Function.identity;
 
 import com.google.common.collect.ImmutableCollection;
@@ -130,7 +130,7 @@
       String pushCertificate,
       String description)
       throws OrmException, IOException {
-    checkNotNull(groups, "groups may not be null");
+    requireNonNull(groups, "groups may not be null");
     ensurePatchSetMatches(psId, update);
 
     PatchSet ps = new PatchSet(psId);
@@ -197,7 +197,8 @@
     }
 
     ProjectState projectState = projectCache.checkedGet(notes.getProjectName());
-    checkNotNull(projectState, "Failed to load project %s", notes.getProjectName());
+    requireNonNull(
+        projectState, () -> String.format("Failed to load project %s", notes.getProjectName()));
 
     ApprovalsUtil approvalsUtil = approvalsUtilProvider.get();
     for (PatchSetApproval ap :
diff --git a/java/com/google/gerrit/server/StarredChangesUtil.java b/java/com/google/gerrit/server/StarredChangesUtil.java
index 29974e9..8fa5faf 100644
--- a/java/com/google/gerrit/server/StarredChangesUtil.java
+++ b/java/com/google/gerrit/server/StarredChangesUtil.java
@@ -14,8 +14,8 @@
 
 package com.google.gerrit.server;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static java.nio.charset.StandardCharsets.UTF_8;
+import static java.util.Objects.requireNonNull;
 import static java.util.stream.Collectors.joining;
 import static java.util.stream.Collectors.toSet;
 
@@ -117,7 +117,7 @@
 
     private static StarRef create(Ref ref, Iterable<String> labels) {
       return new AutoValue_StarredChangesUtil_StarRef(
-          checkNotNull(ref), ImmutableSortedSet.copyOf(labels));
+          requireNonNull(ref), ImmutableSortedSet.copyOf(labels));
     }
 
     @Nullable
diff --git a/java/com/google/gerrit/server/account/AccountConfig.java b/java/com/google/gerrit/server/account/AccountConfig.java
index 5cd18e3..d58036d 100644
--- a/java/com/google/gerrit/server/account/AccountConfig.java
+++ b/java/com/google/gerrit/server/account/AccountConfig.java
@@ -14,8 +14,8 @@
 
 package com.google.gerrit.server.account;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.base.Strings;
 import com.google.common.collect.ImmutableList;
@@ -90,9 +90,9 @@
   private List<ValidationError> validationErrors;
 
   public AccountConfig(Account.Id accountId, AllUsersName allUsersName, Repository allUsersRepo) {
-    this.accountId = checkNotNull(accountId, "accountId");
-    this.allUsersName = checkNotNull(allUsersName, "allUsersName");
-    this.repo = checkNotNull(allUsersRepo, "allUsersRepo");
+    this.accountId = requireNonNull(accountId, "accountId");
+    this.allUsersName = requireNonNull(allUsersName, "allUsersName");
+    this.repo = requireNonNull(allUsersRepo, "allUsersRepo");
     this.ref = RefNames.refsUsers(accountId);
   }
 
diff --git a/java/com/google/gerrit/server/account/AccountsUpdate.java b/java/com/google/gerrit/server/account/AccountsUpdate.java
index fe944ae..1445dfd 100644
--- a/java/com/google/gerrit/server/account/AccountsUpdate.java
+++ b/java/com/google/gerrit/server/account/AccountsUpdate.java
@@ -14,8 +14,8 @@
 
 package com.google.gerrit.server.account;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
+import static java.util.Objects.requireNonNull;
 import static java.util.stream.Collectors.toSet;
 
 import com.google.common.annotations.VisibleForTesting;
@@ -230,19 +230,19 @@
       PersonIdent authorIdent,
       Runnable afterReadRevision,
       Runnable beforeCommit) {
-    this.repoManager = checkNotNull(repoManager, "repoManager");
-    this.gitRefUpdated = checkNotNull(gitRefUpdated, "gitRefUpdated");
+    this.repoManager = requireNonNull(repoManager, "repoManager");
+    this.gitRefUpdated = requireNonNull(gitRefUpdated, "gitRefUpdated");
     this.currentUser = currentUser;
-    this.allUsersName = checkNotNull(allUsersName, "allUsersName");
-    this.externalIds = checkNotNull(externalIds, "externalIds");
+    this.allUsersName = requireNonNull(allUsersName, "allUsersName");
+    this.externalIds = requireNonNull(externalIds, "externalIds");
     this.metaDataUpdateInternalFactory =
-        checkNotNull(metaDataUpdateInternalFactory, "metaDataUpdateInternalFactory");
-    this.retryHelper = checkNotNull(retryHelper, "retryHelper");
-    this.extIdNotesLoader = checkNotNull(extIdNotesLoader, "extIdNotesLoader");
-    this.committerIdent = checkNotNull(committerIdent, "committerIdent");
-    this.authorIdent = checkNotNull(authorIdent, "authorIdent");
-    this.afterReadRevision = checkNotNull(afterReadRevision, "afterReadRevision");
-    this.beforeCommit = checkNotNull(beforeCommit, "beforeCommit");
+        requireNonNull(metaDataUpdateInternalFactory, "metaDataUpdateInternalFactory");
+    this.retryHelper = requireNonNull(retryHelper, "retryHelper");
+    this.extIdNotesLoader = requireNonNull(extIdNotesLoader, "extIdNotesLoader");
+    this.committerIdent = requireNonNull(committerIdent, "committerIdent");
+    this.authorIdent = requireNonNull(authorIdent, "authorIdent");
+    this.afterReadRevision = requireNonNull(afterReadRevision, "afterReadRevision");
+    this.beforeCommit = requireNonNull(beforeCommit, "beforeCommit");
   }
 
   private static PersonIdent createPersonIdent(
@@ -551,11 +551,11 @@
         AccountConfig accountConfig,
         ExternalIdNotes extIdNotes) {
       checkState(!Strings.isNullOrEmpty(message), "message for account update must be set");
-      this.allUsersName = checkNotNull(allUsersName);
-      this.externalIds = checkNotNull(externalIds);
-      this.message = checkNotNull(message);
-      this.accountConfig = checkNotNull(accountConfig);
-      this.extIdNotes = checkNotNull(extIdNotes);
+      this.allUsersName = requireNonNull(allUsersName);
+      this.externalIds = requireNonNull(externalIds);
+      this.message = requireNonNull(message);
+      this.accountConfig = requireNonNull(accountConfig);
+      this.extIdNotes = requireNonNull(extIdNotes);
     }
 
     public String getMessage() {
diff --git a/java/com/google/gerrit/server/account/HashedPassword.java b/java/com/google/gerrit/server/account/HashedPassword.java
index 427c8c3..bffa3ce 100644
--- a/java/com/google/gerrit/server/account/HashedPassword.java
+++ b/java/com/google/gerrit/server/account/HashedPassword.java
@@ -14,7 +14,8 @@
 
 package com.google.gerrit.server.account;
 
-import com.google.common.base.Preconditions;
+import static com.google.common.base.Preconditions.checkState;
+
 import com.google.common.base.Splitter;
 import com.google.common.io.BaseEncoding;
 import com.google.common.primitives.Ints;
@@ -96,10 +97,10 @@
     this.hashed = hashed;
     this.cost = cost;
 
-    Preconditions.checkState(cost >= 4 && cost < 32);
+    checkState(cost >= 4 && cost < 32);
 
     // salt must be 128 bit.
-    Preconditions.checkState(salt.length == 16);
+    checkState(salt.length == 16);
   }
 
   /**
diff --git a/java/com/google/gerrit/server/account/Preferences.java b/java/com/google/gerrit/server/account/Preferences.java
index 5bf6e26..6767b85 100644
--- a/java/com/google/gerrit/server/account/Preferences.java
+++ b/java/com/google/gerrit/server/account/Preferences.java
@@ -14,7 +14,6 @@
 
 package com.google.gerrit.server.account;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static com.google.gerrit.server.config.ConfigUtil.loadSection;
 import static com.google.gerrit.server.config.ConfigUtil.skipField;
@@ -27,6 +26,7 @@
 import static com.google.gerrit.server.git.UserConfigSections.KEY_TOKEN;
 import static com.google.gerrit.server.git.UserConfigSections.KEY_URL;
 import static com.google.gerrit.server.git.UserConfigSections.URL_ALIAS;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.base.Strings;
 import com.google.common.collect.Lists;
@@ -104,10 +104,10 @@
       Config cfg,
       Config defaultCfg,
       ValidationError.Sink validationErrorSink) {
-    this.accountId = checkNotNull(accountId, "accountId");
-    this.cfg = checkNotNull(cfg, "cfg");
-    this.defaultCfg = checkNotNull(defaultCfg, "defaultCfg");
-    this.validationErrorSink = checkNotNull(validationErrorSink, "validationErrorSink");
+    this.accountId = requireNonNull(accountId, "accountId");
+    this.cfg = requireNonNull(cfg, "cfg");
+    this.defaultCfg = requireNonNull(defaultCfg, "defaultCfg");
+    this.validationErrorSink = requireNonNull(validationErrorSink, "validationErrorSink");
   }
 
   public GeneralPreferencesInfo getGeneralPreferences() {
diff --git a/java/com/google/gerrit/server/account/ProjectWatches.java b/java/com/google/gerrit/server/account/ProjectWatches.java
index edecb18..cc913e5 100644
--- a/java/com/google/gerrit/server/account/ProjectWatches.java
+++ b/java/com/google/gerrit/server/account/ProjectWatches.java
@@ -15,7 +15,7 @@
 package com.google.gerrit.server.account;
 
 import static com.google.common.base.MoreObjects.firstNonNull;
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.auto.value.AutoValue;
 import com.google.common.annotations.VisibleForTesting;
@@ -112,9 +112,9 @@
   private ImmutableMap<ProjectWatchKey, ImmutableSet<NotifyType>> projectWatches;
 
   ProjectWatches(Account.Id accountId, Config cfg, ValidationError.Sink validationErrorSink) {
-    this.accountId = checkNotNull(accountId, "accountId");
-    this.cfg = checkNotNull(cfg, "cfg");
-    this.validationErrorSink = checkNotNull(validationErrorSink, "validationErrorSink");
+    this.accountId = requireNonNull(accountId, "accountId");
+    this.cfg = requireNonNull(cfg, "cfg");
+    this.validationErrorSink = requireNonNull(validationErrorSink, "validationErrorSink");
   }
 
   public ImmutableMap<ProjectWatchKey, ImmutableSet<NotifyType>> getProjectWatches() {
diff --git a/java/com/google/gerrit/server/account/externalids/ExternalId.java b/java/com/google/gerrit/server/account/externalids/ExternalId.java
index 96ea0cc..22a6ee4 100644
--- a/java/com/google/gerrit/server/account/externalids/ExternalId.java
+++ b/java/com/google/gerrit/server/account/externalids/ExternalId.java
@@ -14,10 +14,10 @@
 
 package com.google.gerrit.server.account.externalids;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static com.google.common.collect.ImmutableSet.toImmutableSet;
 import static java.nio.charset.StandardCharsets.UTF_8;
+import static java.util.Objects.requireNonNull;
 
 import com.google.auto.value.AutoValue;
 import com.google.common.annotations.VisibleForTesting;
@@ -284,7 +284,7 @@
   }
 
   public static ExternalId createEmail(Account.Id accountId, String email) {
-    return createWithEmail(SCHEME_MAILTO, email, accountId, checkNotNull(email));
+    return createWithEmail(SCHEME_MAILTO, email, accountId, requireNonNull(email));
   }
 
   static ExternalId create(ExternalId extId, @Nullable ObjectId blobId) {
@@ -331,7 +331,7 @@
 
   public static ExternalId parse(String noteId, Config externalIdConfig, ObjectId blobId)
       throws ConfigInvalidException {
-    checkNotNull(blobId);
+    requireNonNull(blobId);
 
     Set<String> externalIdKeys = externalIdConfig.getSubsections(EXTERNAL_ID_SECTION);
     if (externalIdKeys.size() != 1) {
diff --git a/java/com/google/gerrit/server/account/externalids/ExternalIdNotes.java b/java/com/google/gerrit/server/account/externalids/ExternalIdNotes.java
index 9dd9bd8..5acf63c 100644
--- a/java/com/google/gerrit/server/account/externalids/ExternalIdNotes.java
+++ b/java/com/google/gerrit/server/account/externalids/ExternalIdNotes.java
@@ -14,9 +14,9 @@
 
 package com.google.gerrit.server.account.externalids;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static java.nio.charset.StandardCharsets.UTF_8;
+import static java.util.Objects.requireNonNull;
 import static java.util.stream.Collectors.joining;
 import static java.util.stream.Collectors.toSet;
 import static org.eclipse.jgit.lib.Constants.OBJ_BLOB;
@@ -284,15 +284,15 @@
       MetricMaker metricMaker,
       AllUsersName allUsersName,
       Repository allUsersRepo) {
-    this.externalIdCache = checkNotNull(externalIdCache, "externalIdCache");
+    this.externalIdCache = requireNonNull(externalIdCache, "externalIdCache");
     this.accountCache = accountCache;
     this.accountIndexer = accountIndexer;
     this.updateCount =
         metricMaker.newCounter(
             "notedb/external_id_update_count",
             new Description("Total number of external ID updates.").setRate().setUnit("updates"));
-    this.allUsersName = checkNotNull(allUsersName, "allUsersRepo");
-    this.repo = checkNotNull(allUsersRepo, "allUsersRepo");
+    this.allUsersName = requireNonNull(allUsersName, "allUsersRepo");
+    this.repo = requireNonNull(allUsersRepo, "allUsersRepo");
   }
 
   public ExternalIdNotes setAfterReadRevision(Runnable afterReadRevision) {
diff --git a/java/com/google/gerrit/server/api/accounts/AccountsImpl.java b/java/com/google/gerrit/server/api/accounts/AccountsImpl.java
index ca5aca4..5a30113 100644
--- a/java/com/google/gerrit/server/api/accounts/AccountsImpl.java
+++ b/java/com/google/gerrit/server/api/accounts/AccountsImpl.java
@@ -14,8 +14,8 @@
 
 package com.google.gerrit.server.api.accounts;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.gerrit.server.api.ApiUtil.asRestApiException;
+import static java.util.Objects.requireNonNull;
 
 import com.google.gerrit.extensions.api.accounts.AccountApi;
 import com.google.gerrit.extensions.api.accounts.AccountInput;
@@ -95,7 +95,7 @@
 
   @Override
   public AccountApi create(AccountInput in) throws RestApiException {
-    if (checkNotNull(in, "AccountInput").username == null) {
+    if (requireNonNull(in, "AccountInput").username == null) {
       throw new BadRequestException("AccountInput must specify username");
     }
     try {
diff --git a/java/com/google/gerrit/server/api/changes/ChangesImpl.java b/java/com/google/gerrit/server/api/changes/ChangesImpl.java
index cefabf4..2f19040 100644
--- a/java/com/google/gerrit/server/api/changes/ChangesImpl.java
+++ b/java/com/google/gerrit/server/api/changes/ChangesImpl.java
@@ -14,9 +14,9 @@
 
 package com.google.gerrit.server.api.changes;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static com.google.gerrit.server.api.ApiUtil.asRestApiException;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.base.Joiner;
 import com.google.common.collect.ImmutableList;
@@ -128,7 +128,7 @@
 
       // Check type safety of result; the extension API should be safer than the
       // REST API in this case, since it's intended to be used in Java.
-      Object first = checkNotNull(result.iterator().next());
+      Object first = requireNonNull(result.iterator().next());
       checkState(first instanceof ChangeInfo);
       @SuppressWarnings("unchecked")
       List<ChangeInfo> infos = (List<ChangeInfo>) result;
diff --git a/java/com/google/gerrit/server/api/groups/GroupsImpl.java b/java/com/google/gerrit/server/api/groups/GroupsImpl.java
index 1fdeac1..e8d6cf4 100644
--- a/java/com/google/gerrit/server/api/groups/GroupsImpl.java
+++ b/java/com/google/gerrit/server/api/groups/GroupsImpl.java
@@ -14,8 +14,8 @@
 
 package com.google.gerrit.server.api.groups;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.gerrit.server.api.ApiUtil.asRestApiException;
+import static java.util.Objects.requireNonNull;
 
 import com.google.gerrit.extensions.api.groups.GroupApi;
 import com.google.gerrit.extensions.api.groups.GroupInput;
@@ -90,7 +90,7 @@
 
   @Override
   public GroupApi create(GroupInput in) throws RestApiException {
-    if (checkNotNull(in, "GroupInput").name == null) {
+    if (requireNonNull(in, "GroupInput").name == null) {
       throw new BadRequestException("GroupInput must specify name");
     }
     try {
diff --git a/java/com/google/gerrit/server/audit/AuditEvent.java b/java/com/google/gerrit/server/audit/AuditEvent.java
index ff4f72b..46b2844 100644
--- a/java/com/google/gerrit/server/audit/AuditEvent.java
+++ b/java/com/google/gerrit/server/audit/AuditEvent.java
@@ -14,9 +14,10 @@
 
 package com.google.gerrit.server.audit;
 
+import static java.util.Objects.requireNonNull;
+
 import com.google.auto.value.AutoValue;
 import com.google.common.base.MoreObjects;
-import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableListMultimap;
 import com.google.common.collect.ListMultimap;
 import com.google.gerrit.server.CurrentUser;
@@ -64,7 +65,7 @@
       long when,
       ListMultimap<String, ?> params,
       Object result) {
-    Preconditions.checkNotNull(what, "what is a mandatory not null param !");
+    requireNonNull(what, "what is a mandatory not null param !");
 
     this.sessionId = MoreObjects.firstNonNull(sessionId, UNKNOWN_SESSION_ID);
     this.who = who;
diff --git a/java/com/google/gerrit/server/audit/ExtendedHttpAuditEvent.java b/java/com/google/gerrit/server/audit/ExtendedHttpAuditEvent.java
index 29629f0..c981ba7 100644
--- a/java/com/google/gerrit/server/audit/ExtendedHttpAuditEvent.java
+++ b/java/com/google/gerrit/server/audit/ExtendedHttpAuditEvent.java
@@ -14,7 +14,8 @@
 
 package com.google.gerrit.server.audit;
 
-import com.google.common.base.Preconditions;
+import static java.util.Objects.requireNonNull;
+
 import com.google.common.collect.ListMultimap;
 import com.google.gerrit.extensions.restapi.RestResource;
 import com.google.gerrit.extensions.restapi.RestView;
@@ -62,7 +63,7 @@
         input,
         status,
         result);
-    this.httpRequest = Preconditions.checkNotNull(httpRequest);
+    this.httpRequest = requireNonNull(httpRequest);
     this.resource = resource;
     this.view = view;
   }
diff --git a/java/com/google/gerrit/server/auth/AuthUser.java b/java/com/google/gerrit/server/auth/AuthUser.java
index 71f29a4..987f086 100644
--- a/java/com/google/gerrit/server/auth/AuthUser.java
+++ b/java/com/google/gerrit/server/auth/AuthUser.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.auth;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.auto.value.AutoValue;
 import com.google.gerrit.common.Nullable;
@@ -48,7 +48,7 @@
    * @param username the name of the authenticated user.
    */
   public AuthUser(UUID uuid, @Nullable String username) {
-    this.uuid = checkNotNull(uuid);
+    this.uuid = requireNonNull(uuid);
     this.username = username;
   }
 
diff --git a/java/com/google/gerrit/server/auth/UniversalAuthBackend.java b/java/com/google/gerrit/server/auth/UniversalAuthBackend.java
index af9c51b..94faeef 100644
--- a/java/com/google/gerrit/server/auth/UniversalAuthBackend.java
+++ b/java/com/google/gerrit/server/auth/UniversalAuthBackend.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.auth;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.gerrit.extensions.registration.DynamicSet;
 import com.google.inject.Inject;
@@ -38,7 +38,7 @@
     List<AuthException> authExs = new ArrayList<>();
     for (AuthBackend backend : authBackends) {
       try {
-        authUsers.add(checkNotNull(backend.authenticate(request)));
+        authUsers.add(requireNonNull(backend.authenticate(request)));
       } catch (MissingCredentialsException ex) {
         // Not handled by this backend.
       } catch (AuthException ex) {
diff --git a/java/com/google/gerrit/server/auth/oauth/OAuthTokenCache.java b/java/com/google/gerrit/server/auth/oauth/OAuthTokenCache.java
index 4c364c5..3a6be0c 100644
--- a/java/com/google/gerrit/server/auth/oauth/OAuthTokenCache.java
+++ b/java/com/google/gerrit/server/auth/oauth/OAuthTokenCache.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.auth.oauth;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Strings;
@@ -103,7 +103,7 @@
   }
 
   public void put(Account.Id id, OAuthToken accessToken) {
-    cache.put(id, encrypt(checkNotNull(accessToken)));
+    cache.put(id, encrypt(requireNonNull(accessToken)));
   }
 
   public void remove(Account.Id id) {
diff --git a/java/com/google/gerrit/server/cache/CacheProvider.java b/java/com/google/gerrit/server/cache/CacheProvider.java
index 2bd570e..b1a9b91 100644
--- a/java/com/google/gerrit/server/cache/CacheProvider.java
+++ b/java/com/google/gerrit/server/cache/CacheProvider.java
@@ -14,8 +14,8 @@
 
 package com.google.gerrit.server.cache;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.base.Strings;
 import com.google.common.cache.Cache;
@@ -99,7 +99,7 @@
   @Override
   public CacheBinding<K, V> configKey(String name) {
     checkNotFrozen();
-    configKey = checkNotNull(name);
+    configKey = requireNonNull(name);
     return this;
   }
 
diff --git a/java/com/google/gerrit/server/cache/serialize/BooleanCacheSerializer.java b/java/com/google/gerrit/server/cache/serialize/BooleanCacheSerializer.java
index 28cd6eb..50fcf0c 100644
--- a/java/com/google/gerrit/server/cache/serialize/BooleanCacheSerializer.java
+++ b/java/com/google/gerrit/server/cache/serialize/BooleanCacheSerializer.java
@@ -14,8 +14,8 @@
 
 package com.google.gerrit.server.cache.serialize;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static java.nio.charset.StandardCharsets.UTF_8;
+import static java.util.Objects.requireNonNull;
 
 import com.google.protobuf.TextFormat;
 import java.util.Arrays;
@@ -28,7 +28,7 @@
 
   @Override
   public byte[] serialize(Boolean object) {
-    byte[] bytes = checkNotNull(object) ? TRUE : FALSE;
+    byte[] bytes = requireNonNull(object) ? TRUE : FALSE;
     return Arrays.copyOf(bytes, bytes.length);
   }
 
diff --git a/java/com/google/gerrit/server/cache/serialize/EnumCacheSerializer.java b/java/com/google/gerrit/server/cache/serialize/EnumCacheSerializer.java
index 7856e55..ecb4963 100644
--- a/java/com/google/gerrit/server/cache/serialize/EnumCacheSerializer.java
+++ b/java/com/google/gerrit/server/cache/serialize/EnumCacheSerializer.java
@@ -14,8 +14,8 @@
 
 package com.google.gerrit.server.cache.serialize;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static java.nio.charset.StandardCharsets.UTF_8;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.base.Converter;
 import com.google.common.base.Enums;
@@ -29,11 +29,11 @@
 
   @Override
   public byte[] serialize(E object) {
-    return converter.reverse().convert(checkNotNull(object)).getBytes(UTF_8);
+    return converter.reverse().convert(requireNonNull(object)).getBytes(UTF_8);
   }
 
   @Override
   public E deserialize(byte[] in) {
-    return converter.convert(new String(checkNotNull(in), UTF_8));
+    return converter.convert(new String(requireNonNull(in), UTF_8));
   }
 }
diff --git a/java/com/google/gerrit/server/cache/serialize/IntKeyCacheSerializer.java b/java/com/google/gerrit/server/cache/serialize/IntKeyCacheSerializer.java
index cff8682..85530f4 100644
--- a/java/com/google/gerrit/server/cache/serialize/IntKeyCacheSerializer.java
+++ b/java/com/google/gerrit/server/cache/serialize/IntKeyCacheSerializer.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.cache.serialize;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.gwtorm.client.IntKey;
 import java.util.function.Function;
@@ -23,7 +23,7 @@
   private final Function<Integer, K> factory;
 
   public IntKeyCacheSerializer(Function<Integer, K> factory) {
-    this.factory = checkNotNull(factory);
+    this.factory = requireNonNull(factory);
   }
 
   @Override
diff --git a/java/com/google/gerrit/server/cache/serialize/IntegerCacheSerializer.java b/java/com/google/gerrit/server/cache/serialize/IntegerCacheSerializer.java
index 3195941..4494454 100644
--- a/java/com/google/gerrit/server/cache/serialize/IntegerCacheSerializer.java
+++ b/java/com/google/gerrit/server/cache/serialize/IntegerCacheSerializer.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.cache.serialize;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.protobuf.CodedInputStream;
 import com.google.protobuf.CodedOutputStream;
@@ -34,7 +34,7 @@
     byte[] buf = new byte[MAX_VARINT_SIZE];
     CodedOutputStream cout = CodedOutputStream.newInstance(buf);
     try {
-      cout.writeInt32NoTag(checkNotNull(object));
+      cout.writeInt32NoTag(requireNonNull(object));
       cout.flush();
     } catch (IOException e) {
       throw new IllegalStateException("Failed to serialize int");
@@ -45,7 +45,7 @@
 
   @Override
   public Integer deserialize(byte[] in) {
-    CodedInputStream cin = CodedInputStream.newInstance(checkNotNull(in));
+    CodedInputStream cin = CodedInputStream.newInstance(requireNonNull(in));
     int ret;
     try {
       ret = cin.readRawVarint32();
diff --git a/java/com/google/gerrit/server/change/ActionJson.java b/java/com/google/gerrit/server/change/ActionJson.java
index fbabdd5..a9ad3b3 100644
--- a/java/com/google/gerrit/server/change/ActionJson.java
+++ b/java/com/google/gerrit/server/change/ActionJson.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.change;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Iterables;
@@ -77,7 +77,7 @@
     List<ActionVisitor> visitors = visitors();
     if (!visitors.isEmpty()) {
       changeInfo = changeJson().format(rsrc);
-      revisionInfo = checkNotNull(Iterables.getOnlyElement(changeInfo.revisions.values()));
+      revisionInfo = requireNonNull(Iterables.getOnlyElement(changeInfo.revisions.values()));
       changeInfo.revisions = null;
     }
     return toActionMap(rsrc, visitors, changeInfo, revisionInfo);
diff --git a/java/com/google/gerrit/server/change/AddReviewersOp.java b/java/com/google/gerrit/server/change/AddReviewersOp.java
index 2ed0f20..947dead 100644
--- a/java/com/google/gerrit/server/change/AddReviewersOp.java
+++ b/java/com/google/gerrit/server/change/AddReviewersOp.java
@@ -15,11 +15,11 @@
 package com.google.gerrit.server.change;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static com.google.common.collect.ImmutableList.toImmutableList;
 import static com.google.gerrit.extensions.client.ReviewerState.CC;
 import static com.google.gerrit.extensions.client.ReviewerState.REVIEWER;
+import static java.util.Objects.requireNonNull;
 import static java.util.stream.Collectors.toList;
 
 import com.google.auto.value.AutoValue;
@@ -165,7 +165,7 @@
   }
 
   void setPatchSet(PatchSet patchSet) {
-    this.patchSet = checkNotNull(patchSet);
+    this.patchSet = requireNonNull(patchSet);
   }
 
   @Override
@@ -213,7 +213,7 @@
     checkAdded();
 
     if (patchSet == null) {
-      patchSet = checkNotNull(psUtil.current(ctx.getDb(), ctx.getNotes()));
+      patchSet = requireNonNull(psUtil.current(ctx.getDb(), ctx.getNotes()));
     }
     return true;
   }
diff --git a/java/com/google/gerrit/server/change/ChangeInserter.java b/java/com/google/gerrit/server/change/ChangeInserter.java
index 831d388..33c7f73 100644
--- a/java/com/google/gerrit/server/change/ChangeInserter.java
+++ b/java/com/google/gerrit/server/change/ChangeInserter.java
@@ -14,13 +14,13 @@
 
 package com.google.gerrit.server.change;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static com.google.common.collect.ImmutableList.toImmutableList;
 import static com.google.common.collect.ImmutableSet.toImmutableSet;
 import static com.google.gerrit.reviewdb.client.Change.INITIAL_PATCH_SET_ID;
 import static com.google.gerrit.server.change.ReviewerAdder.newAddReviewerInputFromCommitIdentity;
 import static com.google.gerrit.server.notedb.ReviewerStateInternal.REVIEWER;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableList;
@@ -263,7 +263,7 @@
 
   public ChangeInserter setAccountsToNotify(
       ListMultimap<RecipientType, Account.Id> accountsToNotify) {
-    this.accountsToNotify = checkNotNull(accountsToNotify);
+    this.accountsToNotify = requireNonNull(accountsToNotify);
     return this;
   }
 
@@ -304,7 +304,7 @@
   }
 
   public ChangeInserter setGroups(List<String> groups) {
-    checkNotNull(groups, "groups may not be empty");
+    requireNonNull(groups, "groups may not be empty");
     checkState(patchSet == null, "setGroups(Iterable<String>) only valid before creating change");
     this.groups = groups;
     return this;
diff --git a/java/com/google/gerrit/server/change/ConsistencyChecker.java b/java/com/google/gerrit/server/change/ConsistencyChecker.java
index 238598c..a379f2c 100644
--- a/java/com/google/gerrit/server/change/ConsistencyChecker.java
+++ b/java/com/google/gerrit/server/change/ConsistencyChecker.java
@@ -15,10 +15,10 @@
 package com.google.gerrit.server.change;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.gerrit.reviewdb.client.RefNames.REFS_CHANGES;
 import static com.google.gerrit.reviewdb.server.ReviewDbUtil.intKeyOrdering;
 import static com.google.gerrit.server.ChangeUtil.PS_ID_ORDER;
+import static java.util.Objects.requireNonNull;
 
 import com.google.auto.value.AutoValue;
 import com.google.common.collect.Collections2;
@@ -171,7 +171,7 @@
   }
 
   public Result check(ChangeNotes notes, @Nullable FixInput f) {
-    checkNotNull(notes);
+    requireNonNull(notes);
     try {
       return retryHelper.execute(
           buf -> {
@@ -530,7 +530,7 @@
           if (!reuseOldPsId) {
             bu.addOp(
                 notes.getChangeId(),
-                new DeletePatchSetFromDbOp(checkNotNull(deleteOldPatchSetProblem), psIdToDelete));
+                new DeletePatchSetFromDbOp(requireNonNull(deleteOldPatchSetProblem), psIdToDelete));
           }
         }
 
@@ -759,7 +759,7 @@
 
   private ProblemInfo problem(String msg) {
     ProblemInfo p = new ProblemInfo();
-    p.message = checkNotNull(msg);
+    p.message = requireNonNull(msg);
     problems.add(p);
     return p;
   }
diff --git a/java/com/google/gerrit/server/change/MergeabilityCacheImpl.java b/java/com/google/gerrit/server/change/MergeabilityCacheImpl.java
index 2d00886..131f3a1 100644
--- a/java/com/google/gerrit/server/change/MergeabilityCacheImpl.java
+++ b/java/com/google/gerrit/server/change/MergeabilityCacheImpl.java
@@ -15,7 +15,7 @@
 package com.google.gerrit.server.change;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.base.Converter;
 import com.google.common.base.Enums;
@@ -85,10 +85,10 @@
           "Cannot cache %s.%s",
           SubmitType.class.getSimpleName(),
           submitType);
-      this.commit = checkNotNull(commit, "commit");
-      this.into = checkNotNull(into, "into");
-      this.submitType = checkNotNull(submitType, "submitType");
-      this.mergeStrategy = checkNotNull(mergeStrategy, "mergeStrategy");
+      this.commit = requireNonNull(commit, "commit");
+      this.into = requireNonNull(into, "into");
+      this.submitType = requireNonNull(submitType, "submitType");
+      this.mergeStrategy = requireNonNull(mergeStrategy, "mergeStrategy");
     }
 
     public ObjectId getCommit() {
diff --git a/java/com/google/gerrit/server/change/PatchSetInserter.java b/java/com/google/gerrit/server/change/PatchSetInserter.java
index 8bd6c17..24c4237 100644
--- a/java/com/google/gerrit/server/change/PatchSetInserter.java
+++ b/java/com/google/gerrit/server/change/PatchSetInserter.java
@@ -14,12 +14,11 @@
 
 package com.google.gerrit.server.change;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static com.google.gerrit.server.notedb.ReviewerStateInternal.CC;
 import static com.google.gerrit.server.notedb.ReviewerStateInternal.REVIEWER;
+import static java.util.Objects.requireNonNull;
 
-import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableListMultimap;
 import com.google.common.collect.ListMultimap;
 import com.google.common.flogger.FluentLogger;
@@ -167,7 +166,7 @@
   }
 
   public PatchSetInserter setGroups(List<String> groups) {
-    checkNotNull(groups, "groups may not be null");
+    requireNonNull(groups, "groups may not be null");
     this.groups = groups;
     return this;
   }
@@ -178,13 +177,13 @@
   }
 
   public PatchSetInserter setNotify(NotifyHandling notify) {
-    this.notify = Preconditions.checkNotNull(notify);
+    this.notify = requireNonNull(notify);
     return this;
   }
 
   public PatchSetInserter setAccountsToNotify(
       ListMultimap<RecipientType, Account.Id> accountsToNotify) {
-    this.accountsToNotify = checkNotNull(accountsToNotify);
+    this.accountsToNotify = requireNonNull(accountsToNotify);
     return this;
   }
 
diff --git a/java/com/google/gerrit/server/change/ReviewerAdder.java b/java/com/google/gerrit/server/change/ReviewerAdder.java
index 441a7d4..adbfe54 100644
--- a/java/com/google/gerrit/server/change/ReviewerAdder.java
+++ b/java/com/google/gerrit/server/change/ReviewerAdder.java
@@ -15,13 +15,13 @@
 package com.google.gerrit.server.change;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static com.google.common.collect.ImmutableList.toImmutableList;
 import static com.google.common.collect.ImmutableSet.toImmutableSet;
 import static com.google.gerrit.extensions.client.ReviewerState.CC;
 import static com.google.gerrit.extensions.client.ReviewerState.REVIEWER;
 import static java.util.Comparator.comparing;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableListMultimap;
@@ -206,7 +206,7 @@
   public ReviewerAddition prepare(
       ReviewDb db, ChangeNotes notes, CurrentUser user, AddReviewerInput input, boolean allowGroup)
       throws OrmException, IOException, PermissionBackendException, ConfigInvalidException {
-    checkNotNull(input.reviewer);
+    requireNonNull(input.reviewer);
     ListMultimap<RecipientType, Account.Id> accountsToNotify;
     try {
       accountsToNotify = notifyUtil.resolveAccounts(input.notifyDetails);
@@ -468,7 +468,7 @@
 
     private ReviewerAddition(AddReviewerInput input, FailureType failureType) {
       this.input = input;
-      this.failureType = checkNotNull(failureType);
+      this.failureType = requireNonNull(failureType);
       result = new AddReviewerResult(input.reviewer);
       op = null;
       reviewers = ImmutableSet.of();
diff --git a/java/com/google/gerrit/server/change/SetAssigneeOp.java b/java/com/google/gerrit/server/change/SetAssigneeOp.java
index 2242ef3..f61e95f 100644
--- a/java/com/google/gerrit/server/change/SetAssigneeOp.java
+++ b/java/com/google/gerrit/server/change/SetAssigneeOp.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.change;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.flogger.FluentLogger;
 import com.google.gerrit.extensions.restapi.ResourceConflictException;
@@ -70,7 +70,7 @@
     this.setAssigneeSenderFactory = setAssigneeSenderFactory;
     this.user = user;
     this.userFactory = userFactory;
-    this.newAssignee = checkNotNull(newAssignee, "assignee");
+    this.newAssignee = requireNonNull(newAssignee, "assignee");
   }
 
   @Override
diff --git a/java/com/google/gerrit/server/config/ConfigUtil.java b/java/com/google/gerrit/server/config/ConfigUtil.java
index c6527fd..f476adf 100644
--- a/java/com/google/gerrit/server/config/ConfigUtil.java
+++ b/java/com/google/gerrit/server/config/ConfigUtil.java
@@ -14,7 +14,8 @@
 
 package com.google.gerrit.server.config;
 
-import com.google.common.base.Preconditions;
+import static java.util.Objects.requireNonNull;
+
 import java.lang.reflect.Field;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Modifier;
@@ -289,7 +290,7 @@
         Object c = f.get(s);
         Object d = f.get(defaults);
         if (!isString(t) && !isCollectionOrMap(t)) {
-          Preconditions.checkNotNull(d, "Default cannot be null for: " + n);
+          requireNonNull(d, "Default cannot be null for: " + n);
         }
         if (c == null || c.equals(d)) {
           cfg.unset(section, sub, n);
@@ -347,7 +348,7 @@
         f.setAccessible(true);
         Object d = f.get(defaults);
         if (!isString(t) && !isCollectionOrMap(t)) {
-          Preconditions.checkNotNull(d, "Default cannot be null for: " + n);
+          requireNonNull(d, "Default cannot be null for: " + n);
         }
         if (isString(t)) {
           String v = cfg.getString(section, sub, n);
diff --git a/java/com/google/gerrit/server/config/ScheduleConfig.java b/java/com/google/gerrit/server/config/ScheduleConfig.java
index d62e7a2..c5f53b3 100644
--- a/java/com/google/gerrit/server/config/ScheduleConfig.java
+++ b/java/com/google/gerrit/server/config/ScheduleConfig.java
@@ -14,8 +14,8 @@
 
 package com.google.gerrit.server.config;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static java.time.ZoneId.systemDefault;
+import static java.util.Objects.requireNonNull;
 
 import com.google.auto.value.AutoValue;
 import com.google.auto.value.extension.memoized.Memoized;
@@ -239,7 +239,7 @@
   }
 
   private static long computeInitialDelay(long interval, String start, ZonedDateTime now) {
-    checkNotNull(start);
+    requireNonNull(start);
 
     try {
       DateTimeFormatter formatter = DateTimeFormatter.ofPattern("[E ]HH:mm").withLocale(Locale.US);
diff --git a/java/com/google/gerrit/server/edit/ChangeEdit.java b/java/com/google/gerrit/server/edit/ChangeEdit.java
index e641abc..11dc380 100644
--- a/java/com/google/gerrit/server/edit/ChangeEdit.java
+++ b/java/com/google/gerrit/server/edit/ChangeEdit.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.edit;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.gerrit.reviewdb.client.Change;
 import com.google.gerrit.reviewdb.client.PatchSet;
@@ -35,10 +35,10 @@
 
   public ChangeEdit(
       Change change, String editRefName, RevCommit editCommit, PatchSet basePatchSet) {
-    this.change = checkNotNull(change);
-    this.editRefName = checkNotNull(editRefName);
-    this.editCommit = checkNotNull(editCommit);
-    this.basePatchSet = checkNotNull(basePatchSet);
+    this.change = requireNonNull(change);
+    this.editRefName = requireNonNull(editRefName);
+    this.editCommit = requireNonNull(editCommit);
+    this.basePatchSet = requireNonNull(basePatchSet);
   }
 
   public Change getChange() {
diff --git a/java/com/google/gerrit/server/edit/tree/ChangeFileContentModification.java b/java/com/google/gerrit/server/edit/tree/ChangeFileContentModification.java
index a163b58..d91e2e8 100644
--- a/java/com/google/gerrit/server/edit/tree/ChangeFileContentModification.java
+++ b/java/com/google/gerrit/server/edit/tree/ChangeFileContentModification.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.edit.tree;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 import static org.eclipse.jgit.lib.Constants.OBJ_BLOB;
 
 import com.google.common.annotations.VisibleForTesting;
@@ -43,7 +43,7 @@
 
   public ChangeFileContentModification(String filePath, RawInput newContent) {
     this.filePath = filePath;
-    this.newContent = checkNotNull(newContent, "new content required");
+    this.newContent = requireNonNull(newContent, "new content required");
   }
 
   @Override
diff --git a/java/com/google/gerrit/server/edit/tree/TreeCreator.java b/java/com/google/gerrit/server/edit/tree/TreeCreator.java
index e867e76..e6caf97 100644
--- a/java/com/google/gerrit/server/edit/tree/TreeCreator.java
+++ b/java/com/google/gerrit/server/edit/tree/TreeCreator.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.edit.tree;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -39,7 +39,7 @@
   private final List<TreeModification> treeModifications = new ArrayList<>();
 
   public TreeCreator(RevCommit baseCommit) {
-    this.baseCommit = checkNotNull(baseCommit, "baseCommit is required");
+    this.baseCommit = requireNonNull(baseCommit, "baseCommit is required");
   }
 
   /**
@@ -49,7 +49,7 @@
    * @param treeModifications modifications which should be applied to the base tree
    */
   public void addTreeModifications(List<TreeModification> treeModifications) {
-    checkNotNull(treeModifications, "treeModifications must not be null");
+    requireNonNull(treeModifications, "treeModifications must not be null");
     this.treeModifications.addAll(treeModifications);
   }
 
diff --git a/java/com/google/gerrit/server/events/EventFactory.java b/java/com/google/gerrit/server/events/EventFactory.java
index 62dc511..40ad144 100644
--- a/java/com/google/gerrit/server/events/EventFactory.java
+++ b/java/com/google/gerrit/server/events/EventFactory.java
@@ -14,8 +14,8 @@
 
 package com.google.gerrit.server.events;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static java.util.Comparator.comparing;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ListMultimap;
 import com.google.common.collect.Lists;
@@ -322,7 +322,7 @@
           if (!ps.getRevision().get().equals(p)) {
             continue;
           }
-          ca.dependsOn.add(newDependsOn(checkNotNull(cd.change()), ps));
+          ca.dependsOn.add(newDependsOn(requireNonNull(cd.change()), ps));
         }
       }
     }
@@ -357,7 +357,7 @@
           if (!p.name().equals(rev)) {
             continue;
           }
-          ca.neededBy.add(newNeededBy(checkNotNull(cd.change()), ps));
+          ca.neededBy.add(newNeededBy(requireNonNull(cd.change()), ps));
           continue PATCH_SETS;
         }
       }
diff --git a/java/com/google/gerrit/server/fixes/FixReplacementInterpreter.java b/java/com/google/gerrit/server/fixes/FixReplacementInterpreter.java
index 1e5088be..65f14db 100644
--- a/java/com/google/gerrit/server/fixes/FixReplacementInterpreter.java
+++ b/java/com/google/gerrit/server/fixes/FixReplacementInterpreter.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.fixes;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 import static java.util.stream.Collectors.groupingBy;
 
 import com.google.gerrit.common.RawInputUtil;
@@ -70,7 +70,7 @@
       ObjectId patchSetCommitId,
       List<FixReplacement> fixReplacements)
       throws ResourceNotFoundException, IOException, ResourceConflictException {
-    checkNotNull(fixReplacements, "Fix replacements must not be null");
+    requireNonNull(fixReplacements, "Fix replacements must not be null");
 
     Map<String, List<FixReplacement>> fixReplacementsPerFilePath =
         fixReplacements.stream().collect(groupingBy(fixReplacement -> fixReplacement.path));
diff --git a/java/com/google/gerrit/server/fixes/LineIdentifier.java b/java/com/google/gerrit/server/fixes/LineIdentifier.java
index c32d822..3d09c34 100644
--- a/java/com/google/gerrit/server/fixes/LineIdentifier.java
+++ b/java/com/google/gerrit/server/fixes/LineIdentifier.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.fixes;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -36,7 +36,7 @@
   private int currentLineEndIndex;
 
   LineIdentifier(String string) {
-    checkNotNull(string);
+    requireNonNull(string);
     lineSeparatorMatcher = LINE_SEPARATOR_PATTERN.matcher(string);
     reset();
   }
diff --git a/java/com/google/gerrit/server/fixes/StringModifier.java b/java/com/google/gerrit/server/fixes/StringModifier.java
index ccd40b3..85d024b 100644
--- a/java/com/google/gerrit/server/fixes/StringModifier.java
+++ b/java/com/google/gerrit/server/fixes/StringModifier.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.fixes;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 /**
  * A modifier of a string. It allows to replace multiple parts of a string by indicating those parts
@@ -29,7 +29,7 @@
   private int previousEndOffset = Integer.MIN_VALUE;
 
   StringModifier(String string) {
-    checkNotNull(string, "string must not be null");
+    requireNonNull(string, "string must not be null");
     stringBuilder = new StringBuilder(string);
   }
 
@@ -45,7 +45,7 @@
    *     previous call of this method
    */
   public void replace(int startIndex, int endIndex, String replacement) {
-    checkNotNull(replacement, "replacement string must not be null");
+    requireNonNull(replacement, "replacement string must not be null");
     if (previousEndOffset > startIndex) {
       throw new StringIndexOutOfBoundsException(
           String.format(
diff --git a/java/com/google/gerrit/server/git/DefaultAdvertiseRefsHook.java b/java/com/google/gerrit/server/git/DefaultAdvertiseRefsHook.java
index 022b0e1..ef5e65b 100644
--- a/java/com/google/gerrit/server/git/DefaultAdvertiseRefsHook.java
+++ b/java/com/google/gerrit/server/git/DefaultAdvertiseRefsHook.java
@@ -44,9 +44,7 @@
     try {
       return perm.filter(repo.getAllRefs(), repo, opts);
     } catch (PermissionBackendException e) {
-      ServiceMayNotContinueException ex = new ServiceMayNotContinueException();
-      ex.initCause(e);
-      throw ex;
+      throw new ServiceMayNotContinueException(e);
     }
   }
 }
diff --git a/java/com/google/gerrit/server/git/DefaultChangeReportFormatter.java b/java/com/google/gerrit/server/git/DefaultChangeReportFormatter.java
index 7cf97ac..1241585 100644
--- a/java/com/google/gerrit/server/git/DefaultChangeReportFormatter.java
+++ b/java/com/google/gerrit/server/git/DefaultChangeReportFormatter.java
@@ -14,7 +14,8 @@
 
 package com.google.gerrit.server.git;
 
-import com.google.common.base.Preconditions;
+import static com.google.common.base.Preconditions.checkState;
+
 import com.google.gerrit.reviewdb.client.Change;
 import com.google.gerrit.server.config.UrlFormatter;
 import com.google.inject.Inject;
@@ -69,7 +70,7 @@
   protected String formatChangeUrl(Input input) {
     Change c = input.change();
     Optional<String> changeUrl = urlFormatter.getChangeViewUrl(c.getProject(), c.getId());
-    Preconditions.checkState(changeUrl.isPresent());
+    checkState(changeUrl.isPresent());
 
     StringBuilder m =
         new StringBuilder()
diff --git a/java/com/google/gerrit/server/git/HookUtil.java b/java/com/google/gerrit/server/git/HookUtil.java
index 1762b95..42d3f69 100644
--- a/java/com/google/gerrit/server/git/HookUtil.java
+++ b/java/com/google/gerrit/server/git/HookUtil.java
@@ -42,9 +42,7 @@
     } catch (ServiceMayNotContinueException e) {
       throw e;
     } catch (IOException e) {
-      ServiceMayNotContinueException ex = new ServiceMayNotContinueException();
-      ex.initCause(e);
-      throw ex;
+      throw new ServiceMayNotContinueException(e);
     }
     rp.setAdvertisedRefs(refs, rp.getAdvertisedObjects());
     return refs;
diff --git a/java/com/google/gerrit/server/git/InMemoryInserter.java b/java/com/google/gerrit/server/git/InMemoryInserter.java
index b80f846..8d12f2b 100644
--- a/java/com/google/gerrit/server/git/InMemoryInserter.java
+++ b/java/com/google/gerrit/server/git/InMemoryInserter.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.git;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableList;
 import java.io.IOException;
@@ -40,7 +40,7 @@
   private final boolean closeReader;
 
   public InMemoryInserter(ObjectReader reader) {
-    this.reader = checkNotNull(reader);
+    this.reader = requireNonNull(reader);
     closeReader = false;
   }
 
diff --git a/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java b/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java
index abe3410..85822a8 100644
--- a/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java
+++ b/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java
@@ -140,11 +140,8 @@
     FileKey loc = FileKey.lenient(path.resolve(name.get()).toFile(), FS.DETECTED);
     try {
       return RepositoryCache.open(loc);
-    } catch (IOException e1) {
-      final RepositoryNotFoundException e2;
-      e2 = new RepositoryNotFoundException("Cannot open repository " + name);
-      e2.initCause(e1);
-      throw e2;
+    } catch (IOException e) {
+      throw new RepositoryNotFoundException("Cannot open repository " + name, e);
     }
   }
 
@@ -197,11 +194,8 @@
       }
 
       return db;
-    } catch (IOException e1) {
-      final RepositoryNotFoundException e2;
-      e2 = new RepositoryNotFoundException("Cannot create repository " + name);
-      e2.initCause(e1);
-      throw e2;
+    } catch (IOException e) {
+      throw new RepositoryNotFoundException("Cannot create repository " + name, e);
     }
   }
 
diff --git a/java/com/google/gerrit/server/git/MergeTip.java b/java/com/google/gerrit/server/git/MergeTip.java
index 3bd0f38..204f453 100644
--- a/java/com/google/gerrit/server/git/MergeTip.java
+++ b/java/com/google/gerrit/server/git/MergeTip.java
@@ -15,7 +15,7 @@
 package com.google.gerrit.server.git;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.gerrit.common.Nullable;
 import java.util.Collection;
@@ -40,7 +40,7 @@
    * @param toMerge list of commits to be merged in merge operation; may not be null or empty.
    */
   public MergeTip(@Nullable CodeReviewCommit initialTip, Collection<CodeReviewCommit> toMerge) {
-    checkNotNull(toMerge, "toMerge may not be null");
+    requireNonNull(toMerge, "toMerge may not be null");
     checkArgument(!toMerge.isEmpty(), "toMerge may not be empty");
     this.initialTip = initialTip;
     this.branchTip = initialTip;
diff --git a/java/com/google/gerrit/server/git/MergeUtil.java b/java/com/google/gerrit/server/git/MergeUtil.java
index d5e2a41..cc3b415 100644
--- a/java/com/google/gerrit/server/git/MergeUtil.java
+++ b/java/com/google/gerrit/server/git/MergeUtil.java
@@ -15,10 +15,10 @@
 package com.google.gerrit.server.git;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static com.google.common.collect.ImmutableSet.toImmutableSet;
 import static java.nio.charset.StandardCharsets.UTF_8;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.base.Joiner;
 import com.google.common.base.Strings;
@@ -129,16 +129,18 @@
 
     public String generate(
         RevCommit original, RevCommit mergeTip, Branch.NameKey dest, String current) {
-      checkNotNull(original.getRawBuffer());
+      requireNonNull(original.getRawBuffer());
       if (mergeTip != null) {
-        checkNotNull(mergeTip.getRawBuffer());
+        requireNonNull(mergeTip.getRawBuffer());
       }
       for (ChangeMessageModifier changeMessageModifier : changeMessageModifiers) {
         current = changeMessageModifier.onSubmit(current, original, mergeTip, dest);
-        checkNotNull(
+        requireNonNull(
             current,
-            changeMessageModifier.getClass().getName()
-                + ".OnSubmit returned null instead of new commit message");
+            () ->
+                String.format(
+                    "%s.OnSubmit returned null instead of new commit message",
+                    changeMessageModifier.getClass().getName()));
       }
       return current;
     }
diff --git a/java/com/google/gerrit/server/git/MergedByPushOp.java b/java/com/google/gerrit/server/git/MergedByPushOp.java
index eced9c3..b3a1d72 100644
--- a/java/com/google/gerrit/server/git/MergedByPushOp.java
+++ b/java/com/google/gerrit/server/git/MergedByPushOp.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.git;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.flogger.FluentLogger;
 import com.google.gerrit.reviewdb.client.Change;
@@ -101,7 +101,7 @@
   }
 
   public MergedByPushOp setPatchSetProvider(Provider<PatchSet> patchSetProvider) {
-    this.patchSetProvider = checkNotNull(patchSetProvider);
+    this.patchSetProvider = requireNonNull(patchSetProvider);
     return this;
   }
 
@@ -119,8 +119,9 @@
       patchSet = patchSetProvider.get();
     } else {
       patchSet =
-          checkNotNull(
-              psUtil.get(ctx.getDb(), ctx.getNotes(), psId), "patch set %s not found", psId);
+          requireNonNull(
+              psUtil.get(ctx.getDb(), ctx.getNotes(), psId),
+              () -> String.format("patch set %s not found", psId));
     }
     info = getPatchSetInfo(ctx);
 
@@ -198,7 +199,7 @@
   private PatchSetInfo getPatchSetInfo(ChangeContext ctx) throws IOException, OrmException {
     RevWalk rw = ctx.getRevWalk();
     RevCommit commit =
-        rw.parseCommit(ObjectId.fromString(checkNotNull(patchSet).getRevision().get()));
+        rw.parseCommit(ObjectId.fromString(requireNonNull(patchSet).getRevision().get()));
     return patchSetInfoFactory.get(rw, commit, psId);
   }
 }
diff --git a/java/com/google/gerrit/server/git/receive/HackPushNegotiateHook.java b/java/com/google/gerrit/server/git/receive/HackPushNegotiateHook.java
index 1001d04..bf3d270 100644
--- a/java/com/google/gerrit/server/git/receive/HackPushNegotiateHook.java
+++ b/java/com/google/gerrit/server/git/receive/HackPushNegotiateHook.java
@@ -82,9 +82,7 @@
       } catch (ServiceMayNotContinueException e) {
         throw e;
       } catch (IOException e) {
-        ServiceMayNotContinueException ex = new ServiceMayNotContinueException();
-        ex.initCause(e);
-        throw ex;
+        throw new ServiceMayNotContinueException(e);
       }
     }
     rp.setAdvertisedRefs(r, history(r.values(), rp));
diff --git a/java/com/google/gerrit/server/git/receive/ReceiveCommits.java b/java/com/google/gerrit/server/git/receive/ReceiveCommits.java
index 6e800d0..6267590 100644
--- a/java/com/google/gerrit/server/git/receive/ReceiveCommits.java
+++ b/java/com/google/gerrit/server/git/receive/ReceiveCommits.java
@@ -16,7 +16,6 @@
 
 import static com.google.common.base.MoreObjects.firstNonNull;
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static com.google.common.collect.ImmutableSet.toImmutableSet;
 import static com.google.gerrit.common.FooterConstants.CHANGE_ID;
@@ -32,6 +31,7 @@
 import static com.google.gerrit.server.mail.MailUtil.getRecipientsFromFooters;
 import static java.nio.charset.StandardCharsets.UTF_8;
 import static java.util.Comparator.comparingInt;
+import static java.util.Objects.requireNonNull;
 import static java.util.stream.Collectors.joining;
 import static java.util.stream.Collectors.toList;
 import static org.eclipse.jgit.lib.Constants.R_HEADS;
@@ -499,11 +499,8 @@
     for (ValidationMessage m : messages) {
       String msg = m.getType().getPrefix() + m.getMessage();
 
-      if (m.isError()) {
-        messageSender.sendError(msg);
-      } else {
-        messageSender.sendMessage(msg);
-      }
+      // Avoid calling sendError which will add its own error: prefix.
+      messageSender.sendMessage(msg);
     }
   }
 
@@ -2428,7 +2425,7 @@
         final PatchSet.Id psId = ins.setGroups(groups).getPatchSetId();
         Account.Id me = user.getAccountId();
         List<FooterLine> footerLines = commit.getFooterLines();
-        checkNotNull(magicBranch);
+        requireNonNull(magicBranch);
 
         // TODO(dborowitz): Support reviewers by email from footers? Maybe not: kernel developers
         // with AOSP accounts already complain about these notifications, and that would make it
@@ -2496,15 +2493,20 @@
           PermissionBackendException {
     Map<ObjectId, Change> bySha = Maps.newHashMapWithExpectedSize(create.size() + replace.size());
     for (CreateRequest r : create) {
-      checkNotNull(r.change, "cannot submit new change %s; op may not have run", r.changeId);
+      requireNonNull(
+          r.change,
+          () -> String.format("cannot submit new change %s; op may not have run", r.changeId));
       bySha.put(r.commit, r.change);
     }
     for (ReplaceRequest r : replace) {
       bySha.put(r.newCommitId, r.notes.getChange());
     }
     Change tipChange = bySha.get(magicBranch.cmd.getNewId());
-    checkNotNull(
-        tipChange, "tip of push does not correspond to a change; found these changes: %s", bySha);
+    requireNonNull(
+        tipChange,
+        () ->
+            String.format(
+                "tip of push does not correspond to a change; found these changes: %s", bySha));
     logger.atFine().log(
         "Processing submit with tip change %s (%s)", tipChange.getId(), magicBranch.cmd.getNewId());
     try (MergeOp op = mergeOpProvider.get()) {
@@ -2573,7 +2575,7 @@
         Change.Id toChange, RevCommit newCommit, ReceiveCommand cmd, boolean checkMergedInto) {
       this.ontoChange = toChange;
       this.newCommitId = newCommit.copy();
-      this.inputCommand = checkNotNull(cmd);
+      this.inputCommand = requireNonNull(cmd);
       this.checkMergedInto = checkMergedInto;
 
       revisions = HashBiMap.create();
@@ -2853,7 +2855,7 @@
     List<String> groups = ImmutableList.of();
 
     UpdateGroupsRequest(Ref ref, RevCommit commit) {
-      this.psId = checkNotNull(PatchSet.Id.fromRef(ref.getName()));
+      this.psId = requireNonNull(PatchSet.Id.fromRef(ref.getName()));
       this.commit = commit;
     }
 
@@ -2887,7 +2889,7 @@
     final ReceiveCommand cmd;
 
     private UpdateOneRefOp(ReceiveCommand cmd) {
-      this.cmd = checkNotNull(cmd);
+      this.cmd = requireNonNull(cmd);
     }
 
     @Override
diff --git a/java/com/google/gerrit/server/git/validators/CommitValidators.java b/java/com/google/gerrit/server/git/validators/CommitValidators.java
index fed2a59..9f75c07 100644
--- a/java/com/google/gerrit/server/git/validators/CommitValidators.java
+++ b/java/com/google/gerrit/server/git/validators/CommitValidators.java
@@ -14,13 +14,13 @@
 
 package com.google.gerrit.server.git.validators;
 
+import static com.google.common.base.Preconditions.checkState;
 import static com.google.gerrit.reviewdb.client.Change.CHANGE_ID_PATTERN;
 import static com.google.gerrit.reviewdb.client.RefNames.REFS_CHANGES;
 import static com.google.gerrit.reviewdb.client.RefNames.REFS_CONFIG;
 import static java.util.stream.Collectors.toList;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Preconditions;
 import com.google.common.base.Splitter;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;
@@ -346,7 +346,7 @@
       // HTTP(S)
       Optional<String> webUrl = urlFormatter.getWebUrl();
       if (hostKeys.isEmpty()) {
-        Preconditions.checkState(webUrl.isPresent());
+        checkState(webUrl.isPresent());
         return String.format(
             "  f=\"$(git rev-parse --git-dir)/hooks/commit-msg\"; curl -o \"$f\" %stools/hooks/commit-msg ; chmod +x \"$f\"",
             webUrl.get());
@@ -359,7 +359,7 @@
       int c = host.lastIndexOf(':');
       if (0 <= c) {
         if (host.startsWith("*:")) {
-          Preconditions.checkState(webUrl.isPresent());
+          checkState(webUrl.isPresent());
           sshHost = getGerritHost(webUrl.get());
         } else {
           sshHost = host.substring(0, c);
diff --git a/java/com/google/gerrit/server/git/validators/OnSubmitValidationListener.java b/java/com/google/gerrit/server/git/validators/OnSubmitValidationListener.java
index a626998..308fdc0 100644
--- a/java/com/google/gerrit/server/git/validators/OnSubmitValidationListener.java
+++ b/java/com/google/gerrit/server/git/validators/OnSubmitValidationListener.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.git.validators;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableMap;
 import com.google.gerrit.extensions.annotations.ExtensionPoint;
@@ -52,9 +52,9 @@
      * @param commands commands to be executed.
      */
     Arguments(Project.NameKey project, RevWalk rw, ChainedReceiveCommands commands) {
-      this.project = checkNotNull(project);
-      this.rw = checkNotNull(rw);
-      this.refs = checkNotNull(commands);
+      this.project = requireNonNull(project);
+      this.rw = requireNonNull(rw);
+      this.refs = requireNonNull(commands);
       this.commands = ImmutableMap.copyOf(commands.getCommands());
     }
 
diff --git a/java/com/google/gerrit/server/group/InternalGroupDescription.java b/java/com/google/gerrit/server/group/InternalGroupDescription.java
index 3981b70..1d2252d 100644
--- a/java/com/google/gerrit/server/group/InternalGroupDescription.java
+++ b/java/com/google/gerrit/server/group/InternalGroupDescription.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.group;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableSet;
 import com.google.gerrit.common.Nullable;
@@ -29,7 +29,7 @@
   private final InternalGroup internalGroup;
 
   public InternalGroupDescription(InternalGroup internalGroup) {
-    this.internalGroup = checkNotNull(internalGroup);
+    this.internalGroup = requireNonNull(internalGroup);
   }
 
   @Override
diff --git a/java/com/google/gerrit/server/group/SystemGroupBackend.java b/java/com/google/gerrit/server/group/SystemGroupBackend.java
index 6fc5f46..85c1e73 100644
--- a/java/com/google/gerrit/server/group/SystemGroupBackend.java
+++ b/java/com/google/gerrit/server/group/SystemGroupBackend.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.group;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 import static java.util.stream.Collectors.toSet;
 
 import com.google.common.annotations.VisibleForTesting;
@@ -117,7 +117,7 @@
   }
 
   public GroupReference getGroup(AccountGroup.UUID uuid) {
-    return checkNotNull(uuids.get(uuid), "group %s not found", uuid.get());
+    return requireNonNull(uuids.get(uuid), () -> String.format("group %s not found", uuid.get()));
   }
 
   public Set<String> getNames() {
diff --git a/java/com/google/gerrit/server/group/db/AuditLogFormatter.java b/java/com/google/gerrit/server/group/db/AuditLogFormatter.java
index bbbc095..508f5ef 100644
--- a/java/com/google/gerrit/server/group/db/AuditLogFormatter.java
+++ b/java/com/google/gerrit/server/group/db/AuditLogFormatter.java
@@ -14,8 +14,8 @@
 
 package com.google.gerrit.server.group.db;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableSet;
 import com.google.gerrit.common.Nullable;
@@ -90,16 +90,16 @@
       Function<Account.Id, Optional<Account>> accountRetriever,
       Function<AccountGroup.UUID, Optional<GroupDescription.Basic>> groupRetriever,
       String serverId) {
-    this.accountRetriever = checkNotNull(accountRetriever);
-    this.groupRetriever = checkNotNull(groupRetriever);
-    this.serverId = checkNotNull(serverId);
+    this.accountRetriever = requireNonNull(accountRetriever);
+    this.groupRetriever = requireNonNull(groupRetriever);
+    this.serverId = requireNonNull(serverId);
   }
 
   private AuditLogFormatter(
       Function<Account.Id, Optional<Account>> accountRetriever,
       Function<AccountGroup.UUID, Optional<GroupDescription.Basic>> groupRetriever) {
-    this.accountRetriever = checkNotNull(accountRetriever);
-    this.groupRetriever = checkNotNull(groupRetriever);
+    this.accountRetriever = requireNonNull(accountRetriever);
+    this.groupRetriever = requireNonNull(groupRetriever);
     serverId = null;
   }
 
diff --git a/java/com/google/gerrit/server/group/db/GroupConfig.java b/java/com/google/gerrit/server/group/db/GroupConfig.java
index 193a67f..66230ea 100644
--- a/java/com/google/gerrit/server/group/db/GroupConfig.java
+++ b/java/com/google/gerrit/server/group/db/GroupConfig.java
@@ -14,9 +14,9 @@
 
 package com.google.gerrit.server.group.db;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static com.google.common.collect.ImmutableSet.toImmutableSet;
+import static java.util.Objects.requireNonNull;
 import static java.util.stream.Collectors.joining;
 
 import com.google.common.annotations.VisibleForTesting;
@@ -187,7 +187,7 @@
   private boolean allowSaveEmptyName;
 
   private GroupConfig(AccountGroup.UUID groupUuid) {
-    this.groupUuid = checkNotNull(groupUuid);
+    this.groupUuid = requireNonNull(groupUuid);
     ref = RefNames.refsGroups(groupUuid);
   }
 
diff --git a/java/com/google/gerrit/server/group/db/GroupNameNotes.java b/java/com/google/gerrit/server/group/db/GroupNameNotes.java
index 440bc42..6c21dc4 100644
--- a/java/com/google/gerrit/server/group/db/GroupNameNotes.java
+++ b/java/com/google/gerrit/server/group/db/GroupNameNotes.java
@@ -14,9 +14,9 @@
 
 package com.google.gerrit.server.group.db;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.collect.ImmutableBiMap.toImmutableBiMap;
 import static java.nio.charset.StandardCharsets.UTF_8;
+import static java.util.Objects.requireNonNull;
 import static org.eclipse.jgit.lib.Constants.OBJ_BLOB;
 
 import com.google.common.annotations.VisibleForTesting;
@@ -123,8 +123,8 @@
       AccountGroup.NameKey oldName,
       AccountGroup.NameKey newName)
       throws IOException, ConfigInvalidException, OrmDuplicateKeyException {
-    checkNotNull(oldName);
-    checkNotNull(newName);
+    requireNonNull(oldName);
+    requireNonNull(newName);
 
     GroupNameNotes groupNameNotes = new GroupNameNotes(groupUuid, oldName, newName);
     groupNameNotes.load(projectName, repository);
@@ -154,7 +154,7 @@
       AccountGroup.UUID groupUuid,
       AccountGroup.NameKey groupName)
       throws IOException, ConfigInvalidException, OrmDuplicateKeyException {
-    checkNotNull(groupName);
+    requireNonNull(groupName);
 
     GroupNameNotes groupNameNotes = new GroupNameNotes(groupUuid, null, groupName);
     groupNameNotes.load(projectName, repository);
@@ -313,7 +313,7 @@
       AccountGroup.UUID groupUuid,
       @Nullable AccountGroup.NameKey oldGroupName,
       @Nullable AccountGroup.NameKey newGroupName) {
-    this.groupUuid = checkNotNull(groupUuid);
+    this.groupUuid = requireNonNull(groupUuid);
 
     if (Objects.equals(oldGroupName, newGroupName)) {
       this.oldGroupName = Optional.empty();
diff --git a/java/com/google/gerrit/server/group/testing/TestGroupBackend.java b/java/com/google/gerrit/server/group/testing/TestGroupBackend.java
index c0efe2b..550b15c 100644
--- a/java/com/google/gerrit/server/group/testing/TestGroupBackend.java
+++ b/java/com/google/gerrit/server/group/testing/TestGroupBackend.java
@@ -14,8 +14,8 @@
 
 package com.google.gerrit.server.group.testing;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableList;
 import com.google.gerrit.common.data.GroupDescription;
@@ -42,7 +42,7 @@
    * @return the created group
    */
   public GroupDescription.Basic create(String name) {
-    checkNotNull(name);
+    requireNonNull(name);
     return create(new AccountGroup.UUID(name.startsWith(PREFIX) ? name : PREFIX + name));
   }
 
diff --git a/java/com/google/gerrit/server/index/OnlineReindexer.java b/java/com/google/gerrit/server/index/OnlineReindexer.java
index 0695278..ec0e1d4 100644
--- a/java/com/google/gerrit/server/index/OnlineReindexer.java
+++ b/java/com/google/gerrit/server/index/OnlineReindexer.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.index;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.Lists;
 import com.google.common.flogger.FluentLogger;
@@ -98,11 +98,9 @@
       listener.onStart(name, oldVersion, newVersion);
     }
     index =
-        checkNotNull(
+        requireNonNull(
             indexes.getWriteIndex(newVersion),
-            "not an active write schema version: %s %s",
-            name,
-            newVersion);
+            () -> String.format("not an active write schema version: %s %s", name, newVersion));
     logger.atInfo().log(
         "Starting online reindex of %s from schema version %s to %s",
         name, version(indexes.getSearchIndex()), version(index));
diff --git a/java/com/google/gerrit/server/index/VersionManager.java b/java/com/google/gerrit/server/index/VersionManager.java
index 8aabb60..f37472c 100644
--- a/java/com/google/gerrit/server/index/VersionManager.java
+++ b/java/com/google/gerrit/server/index/VersionManager.java
@@ -272,8 +272,6 @@
   }
 
   private ProvisionException fail(Throwable t) {
-    ProvisionException e = new ProvisionException("Error scanning indexes");
-    e.initCause(t);
-    return e;
+    return new ProvisionException("Error scanning indexes", t);
   }
 }
diff --git a/java/com/google/gerrit/server/index/account/AccountIndexRewriter.java b/java/com/google/gerrit/server/index/account/AccountIndexRewriter.java
index bc0970e..35b967c 100644
--- a/java/com/google/gerrit/server/index/account/AccountIndexRewriter.java
+++ b/java/com/google/gerrit/server/index/account/AccountIndexRewriter.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.index.account;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.gerrit.index.IndexRewriter;
 import com.google.gerrit.index.QueryOptions;
@@ -38,7 +38,7 @@
   public Predicate<AccountState> rewrite(Predicate<AccountState> in, QueryOptions opts)
       throws QueryParseException {
     AccountIndex index = indexes.getSearchIndex();
-    checkNotNull(index, "no active search index configured for accounts");
+    requireNonNull(index, "no active search index configured for accounts");
     return new IndexedAccountQuery(index, in, opts);
   }
 }
diff --git a/java/com/google/gerrit/server/index/account/StalenessChecker.java b/java/com/google/gerrit/server/index/account/StalenessChecker.java
index 0c3e329..4664700 100644
--- a/java/com/google/gerrit/server/index/account/StalenessChecker.java
+++ b/java/com/google/gerrit/server/index/account/StalenessChecker.java
@@ -14,9 +14,9 @@
 
 package com.google.gerrit.server.index.account;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static java.nio.charset.StandardCharsets.UTF_8;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.base.Splitter;
 import com.google.common.collect.ImmutableSet;
@@ -140,7 +140,7 @@
     }
 
     for (byte[] b : extIdStates) {
-      checkNotNull(b, "invalid external ID state");
+      requireNonNull(b, "invalid external ID state");
       String s = new String(b, UTF_8);
       List<String> parts = Splitter.on(':').splitToList(s);
       checkState(parts.size() == 2, "invalid external ID state: %s", s);
diff --git a/java/com/google/gerrit/server/index/change/ChangeIndexer.java b/java/com/google/gerrit/server/index/change/ChangeIndexer.java
index 8f9dc06..064af64 100644
--- a/java/com/google/gerrit/server/index/change/ChangeIndexer.java
+++ b/java/com/google/gerrit/server/index/change/ChangeIndexer.java
@@ -347,9 +347,7 @@
                   try {
                     db = Providers.of(schemaFactory.open());
                   } catch (OrmException e) {
-                    ProvisionException pe = new ProvisionException("error opening ReviewDb");
-                    pe.initCause(e);
-                    throw pe;
+                    throw new ProvisionException("error opening ReviewDb", e);
                   }
                   dbRef.set(db);
                 }
diff --git a/java/com/google/gerrit/server/index/change/StalenessChecker.java b/java/com/google/gerrit/server/index/change/StalenessChecker.java
index b32ca8c..cf7db6f 100644
--- a/java/com/google/gerrit/server/index/change/StalenessChecker.java
+++ b/java/com/google/gerrit/server/index/change/StalenessChecker.java
@@ -15,8 +15,8 @@
 package com.google.gerrit.server.index.change;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
 import static java.nio.charset.StandardCharsets.UTF_8;
+import static java.util.Objects.requireNonNull;
 import static java.util.stream.Collectors.joining;
 
 import com.google.auto.value.AutoValue;
@@ -136,7 +136,7 @@
 
   @VisibleForTesting
   static boolean reviewDbChangeIsStale(Change indexChange, @Nullable Change reviewDbChange) {
-    checkNotNull(indexChange);
+    requireNonNull(indexChange);
     PrimaryStorage storageFromIndex = PrimaryStorage.of(indexChange);
     PrimaryStorage storageFromReviewDb = PrimaryStorage.of(reviewDbChange);
     if (reviewDbChange == null) {
diff --git a/java/com/google/gerrit/server/index/group/GroupIndexRewriter.java b/java/com/google/gerrit/server/index/group/GroupIndexRewriter.java
index c658173..157c01a 100644
--- a/java/com/google/gerrit/server/index/group/GroupIndexRewriter.java
+++ b/java/com/google/gerrit/server/index/group/GroupIndexRewriter.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.index.group;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.gerrit.index.IndexRewriter;
 import com.google.gerrit.index.QueryOptions;
@@ -37,7 +37,7 @@
   public Predicate<InternalGroup> rewrite(Predicate<InternalGroup> in, QueryOptions opts)
       throws QueryParseException {
     GroupIndex index = indexes.getSearchIndex();
-    checkNotNull(index, "no active search index configured for groups");
+    requireNonNull(index, "no active search index configured for groups");
     return new IndexedGroupQuery(index, in, opts);
   }
 }
diff --git a/java/com/google/gerrit/server/ioutil/RegexListSearcher.java b/java/com/google/gerrit/server/ioutil/RegexListSearcher.java
index 937a195..dda373c 100644
--- a/java/com/google/gerrit/server/ioutil/RegexListSearcher.java
+++ b/java/com/google/gerrit/server/ioutil/RegexListSearcher.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.ioutil;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.Lists;
 import com.google.common.primitives.Chars;
@@ -41,7 +41,7 @@
   private final boolean prefixOnly;
 
   public RegexListSearcher(String re, Function<T, String> toStringFunc) {
-    this.toStringFunc = checkNotNull(toStringFunc);
+    this.toStringFunc = requireNonNull(toStringFunc);
 
     if (re.startsWith("^")) {
       re = re.substring(1);
@@ -68,7 +68,7 @@
   }
 
   public Stream<T> search(List<T> list) {
-    checkNotNull(list);
+    requireNonNull(list);
     int begin;
     int end;
 
diff --git a/java/com/google/gerrit/server/logging/MutableTags.java b/java/com/google/gerrit/server/logging/MutableTags.java
index a936a43..f70a8db 100644
--- a/java/com/google/gerrit/server/logging/MutableTags.java
+++ b/java/com/google/gerrit/server/logging/MutableTags.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.logging;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableSetMultimap;
 import com.google.common.collect.MultimapBuilder;
@@ -39,8 +39,8 @@
    *     already exists
    */
   public boolean add(String name, String value) {
-    checkNotNull(name, "tag name is required");
-    checkNotNull(value, "tag value is required");
+    requireNonNull(name, "tag name is required");
+    requireNonNull(value, "tag value is required");
     boolean ret = tagMap.put(name, value);
     if (ret) {
       buildTags();
@@ -55,8 +55,8 @@
    * @param value the value of the tag
    */
   public void remove(String name, String value) {
-    checkNotNull(name, "tag name is required");
-    checkNotNull(value, "tag value is required");
+    requireNonNull(name, "tag name is required");
+    requireNonNull(value, "tag value is required");
     if (tagMap.remove(name, value)) {
       buildTags();
     }
diff --git a/java/com/google/gerrit/server/logging/TraceContext.java b/java/com/google/gerrit/server/logging/TraceContext.java
index 614bf9a..76968d5 100644
--- a/java/com/google/gerrit/server/logging/TraceContext.java
+++ b/java/com/google/gerrit/server/logging/TraceContext.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.logging;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.base.Stopwatch;
 import com.google.common.base.Strings;
@@ -252,12 +252,12 @@
   private TraceContext() {}
 
   public TraceContext addTag(RequestId.Type requestId, Object tagValue) {
-    return addTag(checkNotNull(requestId, "request ID is required").name(), tagValue);
+    return addTag(requireNonNull(requestId, "request ID is required").name(), tagValue);
   }
 
   public TraceContext addTag(String tagName, Object tagValue) {
-    String name = checkNotNull(tagName, "tag name is required");
-    String value = checkNotNull(tagValue, "tag value is required").toString();
+    String name = requireNonNull(tagName, "tag name is required");
+    String value = requireNonNull(tagValue, "tag value is required").toString();
     tags.put(name, value, LoggingContext.getInstance().addTag(name, value));
     return this;
   }
diff --git a/java/com/google/gerrit/server/mail/send/InboundEmailRejectionSender.java b/java/com/google/gerrit/server/mail/send/InboundEmailRejectionSender.java
index 65ce128..99edc04 100644
--- a/java/com/google/gerrit/server/mail/send/InboundEmailRejectionSender.java
+++ b/java/com/google/gerrit/server/mail/send/InboundEmailRejectionSender.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.mail.send;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.gerrit.common.errors.EmailException;
 import com.google.gerrit.extensions.api.changes.RecipientType;
@@ -47,9 +47,9 @@
   public InboundEmailRejectionSender(
       EmailArguments ea, @Assisted Address to, @Assisted String threadId, @Assisted Error reason) {
     super(ea, "error");
-    this.to = checkNotNull(to);
-    this.threadId = checkNotNull(threadId);
-    this.reason = checkNotNull(reason);
+    this.to = requireNonNull(to);
+    this.threadId = requireNonNull(threadId);
+    this.reason = requireNonNull(reason);
   }
 
   @Override
diff --git a/java/com/google/gerrit/server/mail/send/OutgoingEmail.java b/java/com/google/gerrit/server/mail/send/OutgoingEmail.java
index 6182826..043eee9 100644
--- a/java/com/google/gerrit/server/mail/send/OutgoingEmail.java
+++ b/java/com/google/gerrit/server/mail/send/OutgoingEmail.java
@@ -14,9 +14,9 @@
 
 package com.google.gerrit.server.mail.send;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.gerrit.extensions.client.GeneralPreferencesInfo.EmailStrategy.CC_ON_OWN_COMMENTS;
 import static com.google.gerrit.extensions.client.GeneralPreferencesInfo.EmailStrategy.DISABLED;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableListMultimap;
 import com.google.common.collect.ListMultimap;
@@ -84,11 +84,11 @@
   }
 
   public void setNotify(NotifyHandling notify) {
-    this.notify = checkNotNull(notify);
+    this.notify = requireNonNull(notify);
   }
 
   public void setAccountsToNotify(ListMultimap<RecipientType, Account.Id> accountsToNotify) {
-    this.accountsToNotify = checkNotNull(accountsToNotify);
+    this.accountsToNotify = requireNonNull(accountsToNotify);
   }
 
   /**
diff --git a/java/com/google/gerrit/server/mail/send/RegisterNewEmailSender.java b/java/com/google/gerrit/server/mail/send/RegisterNewEmailSender.java
index 0dbfb60..3bca00c 100644
--- a/java/com/google/gerrit/server/mail/send/RegisterNewEmailSender.java
+++ b/java/com/google/gerrit/server/mail/send/RegisterNewEmailSender.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.mail.send;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.gerrit.common.errors.EmailException;
 import com.google.gerrit.extensions.api.changes.RecipientType;
@@ -64,7 +64,7 @@
 
   public String getEmailRegistrationToken() {
     if (emailToken == null) {
-      emailToken = checkNotNull(tokenVerifier.encode(user.getAccountId(), addr), "token");
+      emailToken = requireNonNull(tokenVerifier.encode(user.getAccountId(), addr), "token");
     }
     return emailToken;
   }
diff --git a/java/com/google/gerrit/server/notedb/AbstractChangeNotes.java b/java/com/google/gerrit/server/notedb/AbstractChangeNotes.java
index 632f6fc..72f1ba6 100644
--- a/java/com/google/gerrit/server/notedb/AbstractChangeNotes.java
+++ b/java/com/google/gerrit/server/notedb/AbstractChangeNotes.java
@@ -14,8 +14,8 @@
 
 package com.google.gerrit.server.notedb;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.gerrit.server.notedb.NoteDbTable.CHANGES;
+import static java.util.Objects.requireNonNull;
 
 import com.google.auto.value.AutoValue;
 import com.google.common.annotations.VisibleForTesting;
@@ -92,7 +92,7 @@
       } else if (id != null) {
         id = id.copy();
       }
-      return new AutoValue_AbstractChangeNotes_LoadHandle(checkNotNull(walk), id);
+      return new AutoValue_AbstractChangeNotes_LoadHandle(requireNonNull(walk), id);
     }
 
     public static LoadHandle missing() {
@@ -123,8 +123,8 @@
 
   AbstractChangeNotes(
       Args args, Change.Id changeId, @Nullable PrimaryStorage primaryStorage, boolean autoRebuild) {
-    this.args = checkNotNull(args);
-    this.changeId = checkNotNull(changeId);
+    this.args = requireNonNull(args);
+    this.changeId = requireNonNull(changeId);
     this.primaryStorage = primaryStorage;
     this.autoRebuild =
         primaryStorage == PrimaryStorage.REVIEW_DB
diff --git a/java/com/google/gerrit/server/notedb/ChangeBundle.java b/java/com/google/gerrit/server/notedb/ChangeBundle.java
index d534ff2..c4d6a91 100644
--- a/java/com/google/gerrit/server/notedb/ChangeBundle.java
+++ b/java/com/google/gerrit/server/notedb/ChangeBundle.java
@@ -16,7 +16,6 @@
 
 import static com.google.common.base.MoreObjects.firstNonNull;
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.collect.ImmutableList.toImmutableList;
 import static com.google.common.collect.ImmutableSortedMap.toImmutableSortedMap;
 import static com.google.gerrit.reviewdb.server.ReviewDbUtil.checkColumns;
@@ -27,6 +26,7 @@
 import static java.util.Comparator.comparing;
 import static java.util.Comparator.naturalOrder;
 import static java.util.Comparator.nullsFirst;
+import static java.util.Objects.requireNonNull;
 import static java.util.stream.Collectors.toList;
 
 import com.google.auto.value.AutoValue;
@@ -203,13 +203,13 @@
       Iterable<PatchLineComment> patchLineComments,
       ReviewerSet reviewers,
       Source source) {
-    this.change = checkNotNull(change);
+    this.change = requireNonNull(change);
     this.changeMessages = changeMessageList(changeMessages);
     this.patchSets = ImmutableSortedMap.copyOfSorted(patchSetMap(patchSets));
     this.patchSetApprovals = ImmutableMap.copyOf(patchSetApprovalMap(patchSetApprovals));
     this.patchLineComments = ImmutableMap.copyOf(patchLineCommentMap(patchLineComments));
-    this.reviewers = checkNotNull(reviewers);
-    this.source = checkNotNull(source);
+    this.reviewers = requireNonNull(reviewers);
+    this.source = requireNonNull(source);
 
     for (ChangeMessage m : this.changeMessages) {
       checkArgument(m.getKey().getParentKey().equals(change.getId()));
@@ -706,8 +706,8 @@
       // purposes, ignore the postSubmit bit in NoteDb in this case.
       Timestamp ta = a.getGranted();
       Timestamp tb = b.getGranted();
-      PatchSet psa = checkNotNull(bundleA.patchSets.get(a.getPatchSetId()));
-      PatchSet psb = checkNotNull(bundleB.patchSets.get(b.getPatchSetId()));
+      PatchSet psa = requireNonNull(bundleA.patchSets.get(a.getPatchSetId()));
+      PatchSet psb = requireNonNull(bundleB.patchSets.get(b.getPatchSetId()));
       boolean excludeGranted = false;
       boolean excludePostSubmit = false;
       List<String> exclude = new ArrayList<>(1);
diff --git a/java/com/google/gerrit/server/notedb/ChangeNotes.java b/java/com/google/gerrit/server/notedb/ChangeNotes.java
index d257118..d2942dc 100644
--- a/java/com/google/gerrit/server/notedb/ChangeNotes.java
+++ b/java/com/google/gerrit/server/notedb/ChangeNotes.java
@@ -15,11 +15,11 @@
 package com.google.gerrit.server.notedb;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static com.google.gerrit.reviewdb.client.RefNames.changeMetaRef;
 import static com.google.gerrit.server.notedb.NoteDbTable.CHANGES;
 import static java.util.Comparator.comparing;
+import static java.util.Objects.requireNonNull;
 
 import com.google.auto.value.AutoValue;
 import com.google.common.annotations.VisibleForTesting;
@@ -655,7 +655,8 @@
 
   public PatchSet getCurrentPatchSet() {
     PatchSet.Id psId = change.currentPatchSetId();
-    return checkNotNull(getPatchSets().get(psId), "missing current patch set %s", psId.get());
+    return requireNonNull(
+        getPatchSets().get(psId), () -> String.format("missing current patch set %s", psId.get()));
   }
 
   @VisibleForTesting
@@ -761,10 +762,10 @@
           // to the caller instead of throwing.
           logger.atFine().log("Rebuilding change %s failed: %s", getChangeId(), e.getMessage());
           args.metrics.autoRebuildFailureCount.increment(CHANGES);
-          rebuildResult = checkNotNull(r);
-          checkNotNull(r.newState());
-          checkNotNull(r.staged());
-          checkNotNull(r.staged().changeObjects());
+          rebuildResult = requireNonNull(r);
+          requireNonNull(r.newState());
+          requireNonNull(r.staged());
+          requireNonNull(r.staged().changeObjects());
           return LoadHandle.create(
               ChangeNotesCommit.newStagedRevWalk(repo, r.staged().changeObjects()),
               r.newState().getChangeMetaId());
diff --git a/java/com/google/gerrit/server/notedb/ChangeNotesState.java b/java/com/google/gerrit/server/notedb/ChangeNotesState.java
index c51aec3..ca579ae 100644
--- a/java/com/google/gerrit/server/notedb/ChangeNotesState.java
+++ b/java/com/google/gerrit/server/notedb/ChangeNotesState.java
@@ -15,7 +15,6 @@
 package com.google.gerrit.server.notedb;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static com.google.common.collect.ImmutableList.toImmutableList;
 import static com.google.common.collect.ImmutableListMultimap.toImmutableListMultimap;
@@ -24,6 +23,7 @@
 import static com.google.gerrit.reviewdb.server.ReviewDbCodecs.MESSAGE_CODEC;
 import static com.google.gerrit.reviewdb.server.ReviewDbCodecs.PATCH_SET_CODEC;
 import static com.google.gerrit.server.cache.serialize.ProtoCacheSerializers.toByteString;
+import static java.util.Objects.requireNonNull;
 
 import com.google.auto.value.AutoValue;
 import com.google.common.annotations.VisibleForTesting;
@@ -123,11 +123,14 @@
       boolean workInProgress,
       boolean reviewStarted,
       @Nullable Change.Id revertOf) {
-    checkNotNull(
+    requireNonNull(
         metaId,
-        "metaId is required when passing arguments to create(...). To create an empty %s without"
-            + " NoteDb data, use empty(...) instead",
-        ChangeNotesState.class.getSimpleName());
+        () ->
+            String.format(
+                "metaId is required when passing arguments to create(...)."
+                    + " To create an empty %s without"
+                    + " NoteDb data, use empty(...) instead",
+                ChangeNotesState.class.getSimpleName()));
     return builder()
         .metaId(metaId)
         .changeId(changeId)
@@ -303,7 +306,7 @@
   abstract Timestamp readOnlyUntil();
 
   Change newChange(Project.NameKey project) {
-    ChangeColumns c = checkNotNull(columns(), "columns are required");
+    ChangeColumns c = requireNonNull(columns(), "columns are required");
     Change change =
         new Change(
             c.changeKey(),
@@ -351,7 +354,7 @@
   }
 
   private void copyNonConstructorColumnsTo(Change change) {
-    ChangeColumns c = checkNotNull(columns(), "columns are required");
+    ChangeColumns c = requireNonNull(columns(), "columns are required");
     if (c.status() != null) {
       change.setStatus(c.status());
     }
diff --git a/java/com/google/gerrit/server/notedb/ChangeUpdate.java b/java/com/google/gerrit/server/notedb/ChangeUpdate.java
index b60a332..0d9b962 100644
--- a/java/com/google/gerrit/server/notedb/ChangeUpdate.java
+++ b/java/com/google/gerrit/server/notedb/ChangeUpdate.java
@@ -16,7 +16,6 @@
 
 import static com.google.common.base.MoreObjects.firstNonNull;
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static com.google.gerrit.reviewdb.client.RefNames.changeMetaRef;
 import static com.google.gerrit.server.notedb.ChangeNoteUtil.FOOTER_ASSIGNEE;
@@ -42,6 +41,7 @@
 import static com.google.gerrit.server.notedb.ChangeNoteUtil.FOOTER_WORK_IN_PROGRESS;
 import static com.google.gerrit.server.notedb.NoteDbUtil.sanitizeFooter;
 import static java.util.Comparator.comparing;
+import static java.util.Objects.requireNonNull;
 import static org.eclipse.jgit.lib.Constants.OBJ_BLOB;
 
 import com.google.common.annotations.VisibleForTesting;
@@ -501,7 +501,7 @@
   }
 
   public void setGroups(List<String> groups) {
-    checkNotNull(groups, "groups may not be null");
+    requireNonNull(groups, "groups may not be null");
     this.groups = groups;
   }
 
diff --git a/java/com/google/gerrit/server/notedb/DraftCommentNotes.java b/java/com/google/gerrit/server/notedb/DraftCommentNotes.java
index 81d32d9..8acc8d4 100644
--- a/java/com/google/gerrit/server/notedb/DraftCommentNotes.java
+++ b/java/com/google/gerrit/server/notedb/DraftCommentNotes.java
@@ -15,9 +15,9 @@
 package com.google.gerrit.server.notedb;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.gerrit.reviewdb.client.RefNames.refsDraftComments;
 import static com.google.gerrit.server.notedb.NoteDbTable.CHANGES;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.collect.ImmutableListMultimap;
@@ -184,7 +184,7 @@
   @Override
   protected LoadHandle openHandle(Repository repo) throws NoSuchChangeException, IOException {
     if (rebuildResult != null) {
-      StagedResult sr = checkNotNull(rebuildResult.staged());
+      StagedResult sr = requireNonNull(rebuildResult.staged());
       return LoadHandle.create(
           ChangeNotesCommit.newStagedRevWalk(repo, sr.allUsersObjects()),
           findNewId(sr.allUsersCommands(), getRefName()));
@@ -229,7 +229,7 @@
           logger.atFine().log(
               "Rebuilding change %s via drafts failed: %s", getChangeId(), e.getMessage());
           args.metrics.autoRebuildFailureCount.increment(CHANGES);
-          checkNotNull(r.staged());
+          requireNonNull(r.staged());
           return LoadHandle.create(
               ChangeNotesCommit.newStagedRevWalk(repo, r.staged().allUsersObjects()), draftsId(r));
         }
@@ -249,8 +249,8 @@
   }
 
   private ObjectId draftsId(NoteDbUpdateManager.Result r) {
-    checkNotNull(r);
-    checkNotNull(r.newState());
+    requireNonNull(r);
+    requireNonNull(r.newState());
     return r.newState().getDraftIds().get(author);
   }
 
diff --git a/java/com/google/gerrit/server/notedb/NoteDbChangeState.java b/java/com/google/gerrit/server/notedb/NoteDbChangeState.java
index a69128e..e6b82e6 100644
--- a/java/com/google/gerrit/server/notedb/NoteDbChangeState.java
+++ b/java/com/google/gerrit/server/notedb/NoteDbChangeState.java
@@ -15,12 +15,12 @@
 package com.google.gerrit.server.notedb;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static com.google.gerrit.reviewdb.client.RefNames.changeMetaRef;
 import static com.google.gerrit.reviewdb.client.RefNames.refsDraftComments;
 import static com.google.gerrit.server.notedb.NoteDbChangeState.PrimaryStorage.NOTE_DB;
 import static com.google.gerrit.server.notedb.NoteDbChangeState.PrimaryStorage.REVIEW_DB;
+import static java.util.Objects.requireNonNull;
 
 import com.google.auto.value.AutoValue;
 import com.google.common.annotations.VisibleForTesting;
@@ -339,10 +339,10 @@
       PrimaryStorage primaryStorage,
       Optional<RefState> refState,
       Optional<Timestamp> readOnlyUntil) {
-    this.changeId = checkNotNull(changeId);
-    this.primaryStorage = checkNotNull(primaryStorage);
-    this.refState = checkNotNull(refState);
-    this.readOnlyUntil = checkNotNull(readOnlyUntil);
+    this.changeId = requireNonNull(changeId);
+    this.primaryStorage = requireNonNull(primaryStorage);
+    this.refState = requireNonNull(refState);
+    this.readOnlyUntil = requireNonNull(readOnlyUntil);
 
     switch (primaryStorage) {
       case REVIEW_DB:
diff --git a/java/com/google/gerrit/server/notedb/NoteDbUpdateManager.java b/java/com/google/gerrit/server/notedb/NoteDbUpdateManager.java
index fd25059..12448fb 100644
--- a/java/com/google/gerrit/server/notedb/NoteDbUpdateManager.java
+++ b/java/com/google/gerrit/server/notedb/NoteDbUpdateManager.java
@@ -16,10 +16,10 @@
 
 import static com.google.common.base.MoreObjects.firstNonNull;
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static com.google.gerrit.reviewdb.client.RefNames.REFS_DRAFT_COMMENTS;
 import static com.google.gerrit.server.notedb.NoteDbTable.CHANGES;
+import static java.util.Objects.requireNonNull;
 
 import com.google.auto.value.AutoValue;
 import com.google.common.collect.HashBasedTable;
@@ -186,7 +186,7 @@
           "expected reader to be created from %s, but was %s",
           ins,
           reader.getCreatedFromInserter());
-      this.repo = checkNotNull(repo);
+      this.repo = requireNonNull(repo);
 
       if (saveObjects) {
         this.inMemIns = new InMemoryInserter(rw.getObjectReader());
@@ -199,7 +199,7 @@
 
       this.rw = new RevWalk(tempIns.newReader());
       this.finalIns = ins;
-      this.cmds = checkNotNull(cmds);
+      this.cmds = requireNonNull(cmds);
       this.close = close;
       this.saveObjects = saveObjects;
     }
diff --git a/java/com/google/gerrit/server/notedb/RepoSequence.java b/java/com/google/gerrit/server/notedb/RepoSequence.java
index 47fec59..4c497ac 100644
--- a/java/com/google/gerrit/server/notedb/RepoSequence.java
+++ b/java/com/google/gerrit/server/notedb/RepoSequence.java
@@ -15,10 +15,10 @@
 package com.google.gerrit.server.notedb;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.gerrit.reviewdb.client.RefNames.REFS;
 import static com.google.gerrit.reviewdb.client.RefNames.REFS_SEQUENCES;
 import static java.nio.charset.StandardCharsets.UTF_8;
+import static java.util.Objects.requireNonNull;
 import static org.eclipse.jgit.lib.Constants.OBJ_BLOB;
 
 import com.github.rholder.retry.RetryException;
@@ -167,9 +167,9 @@
       Runnable afterReadRef,
       Retryer<RefUpdate.Result> retryer,
       int floor) {
-    this.repoManager = checkNotNull(repoManager, "repoManager");
-    this.gitRefUpdated = checkNotNull(gitRefUpdated, "gitRefUpdated");
-    this.projectName = checkNotNull(projectName, "projectName");
+    this.repoManager = requireNonNull(repoManager, "repoManager");
+    this.gitRefUpdated = requireNonNull(gitRefUpdated, "gitRefUpdated");
+    this.projectName = requireNonNull(projectName, "projectName");
 
     checkArgument(
         name != null
@@ -179,13 +179,13 @@
         name);
     this.refName = RefNames.REFS_SEQUENCES + name;
 
-    this.seed = checkNotNull(seed, "seed");
+    this.seed = requireNonNull(seed, "seed");
     this.floor = floor;
 
     checkArgument(batchSize > 0, "expected batchSize > 0, got: %s", batchSize);
     this.batchSize = batchSize;
-    this.afterReadRef = checkNotNull(afterReadRef, "afterReadRef");
-    this.retryer = checkNotNull(retryer, "retryer");
+    this.afterReadRef = requireNonNull(afterReadRef, "afterReadRef");
+    this.retryer = requireNonNull(retryer, "retryer");
 
     counterLock = new ReentrantLock(true);
   }
diff --git a/java/com/google/gerrit/server/notedb/rebuild/ChangeRebuilderImpl.java b/java/com/google/gerrit/server/notedb/rebuild/ChangeRebuilderImpl.java
index 9fa1edc..8740710 100644
--- a/java/com/google/gerrit/server/notedb/rebuild/ChangeRebuilderImpl.java
+++ b/java/com/google/gerrit/server/notedb/rebuild/ChangeRebuilderImpl.java
@@ -15,11 +15,11 @@
 package com.google.gerrit.server.notedb.rebuild;
 
 import static com.google.common.base.MoreObjects.firstNonNull;
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static com.google.gerrit.reviewdb.client.RefNames.changeMetaRef;
 import static com.google.gerrit.server.notedb.ChangeNoteUtil.FOOTER_HASHTAGS;
 import static com.google.gerrit.server.notedb.ChangeNoteUtil.FOOTER_PATCH_SET;
+import static java.util.Objects.requireNonNull;
 import static java.util.concurrent.TimeUnit.SECONDS;
 import static java.util.stream.Collectors.toList;
 
@@ -235,7 +235,7 @@
               changeId, bundleReader.fromReviewDb(db, changeId)));
     }
     NoteDbChangeState newNoteDbState =
-        checkNotNull(NoteDbChangeState.parse(changeId, newNoteDbStateStr));
+        requireNonNull(NoteDbChangeState.parse(changeId, newNoteDbStateStr));
     try {
       db.changes()
           .atomicUpdate(
diff --git a/java/com/google/gerrit/server/notedb/rebuild/EventList.java b/java/com/google/gerrit/server/notedb/rebuild/EventList.java
index 773215e..e83814d 100644
--- a/java/com/google/gerrit/server/notedb/rebuild/EventList.java
+++ b/java/com/google/gerrit/server/notedb/rebuild/EventList.java
@@ -15,8 +15,8 @@
 package com.google.gerrit.server.notedb.rebuild;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.Lists;
 import com.google.gerrit.reviewdb.client.Account;
@@ -103,7 +103,7 @@
   }
 
   PatchSet.Id getPatchSetId() {
-    PatchSet.Id id = checkNotNull(get(0).psId);
+    PatchSet.Id id = requireNonNull(get(0).psId);
     for (int i = 1; i < size(); i++) {
       checkState(
           get(i).psId.equals(id), "mismatched patch sets in EventList: %s != %s", id, get(i).psId);
diff --git a/java/com/google/gerrit/server/notedb/rebuild/GcAllUsers.java b/java/com/google/gerrit/server/notedb/rebuild/GcAllUsers.java
index 6544b23..f2a5cc6 100644
--- a/java/com/google/gerrit/server/notedb/rebuild/GcAllUsers.java
+++ b/java/com/google/gerrit/server/notedb/rebuild/GcAllUsers.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.notedb.rebuild;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_GC_SECTION;
 import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_AUTO;
 
@@ -59,7 +59,7 @@
 
   public void run(PrintWriter writer) {
     // Print both log messages and progress to given writer.
-    run(checkNotNull(writer)::println, writer);
+    run(requireNonNull(writer)::println, writer);
   }
 
   private void run(Consumer<String> logOneLine, @Nullable PrintWriter progressWriter) {
diff --git a/java/com/google/gerrit/server/notedb/rebuild/NoteDbMigrator.java b/java/com/google/gerrit/server/notedb/rebuild/NoteDbMigrator.java
index 6a801ec..225926d 100644
--- a/java/com/google/gerrit/server/notedb/rebuild/NoteDbMigrator.java
+++ b/java/com/google/gerrit/server/notedb/rebuild/NoteDbMigrator.java
@@ -15,7 +15,6 @@
 package com.google.gerrit.server.notedb.rebuild;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static com.google.gerrit.reviewdb.server.ReviewDbUtil.unwrapDb;
 import static com.google.gerrit.server.notedb.NotesMigration.SECTION_NOTE_DB;
@@ -26,6 +25,7 @@
 import static com.google.gerrit.server.notedb.NotesMigrationState.WRITE;
 import static java.nio.charset.StandardCharsets.UTF_8;
 import static java.util.Comparator.comparing;
+import static java.util.Objects.requireNonNull;
 import static java.util.stream.Collectors.joining;
 import static java.util.stream.Collectors.toList;
 
@@ -259,7 +259,7 @@
      * @return this.
      */
     public Builder setProgressOut(OutputStream progressOut) {
-      this.progressOut = checkNotNull(progressOut);
+      this.progressOut = requireNonNull(progressOut);
       return this;
     }
 
diff --git a/java/com/google/gerrit/server/patch/ComparisonType.java b/java/com/google/gerrit/server/patch/ComparisonType.java
index abbb680..260c507 100644
--- a/java/com/google/gerrit/server/patch/ComparisonType.java
+++ b/java/com/google/gerrit/server/patch/ComparisonType.java
@@ -14,9 +14,9 @@
 
 package com.google.gerrit.server.patch;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.gerrit.server.ioutil.BasicSerialization.readVarInt32;
 import static com.google.gerrit.server.ioutil.BasicSerialization.writeVarInt32;
+import static java.util.Objects.requireNonNull;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -59,7 +59,7 @@
   }
 
   public int getParentNum() {
-    checkNotNull(parentNum);
+    requireNonNull(parentNum);
     return parentNum;
   }
 
diff --git a/java/com/google/gerrit/server/permissions/ChangePermission.java b/java/com/google/gerrit/server/permissions/ChangePermission.java
index ba1785d..ca1c460 100644
--- a/java/com/google/gerrit/server/permissions/ChangePermission.java
+++ b/java/com/google/gerrit/server/permissions/ChangePermission.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.permissions;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.gerrit.extensions.api.access.GerritPermission;
 
@@ -64,7 +64,7 @@
   }
 
   ChangePermission(String description) {
-    this.description = checkNotNull(description);
+    this.description = requireNonNull(description);
   }
 
   @Override
diff --git a/java/com/google/gerrit/server/permissions/DefaultPermissionBackend.java b/java/com/google/gerrit/server/permissions/DefaultPermissionBackend.java
index 8cf9444..406eda8 100644
--- a/java/com/google/gerrit/server/permissions/DefaultPermissionBackend.java
+++ b/java/com/google/gerrit/server/permissions/DefaultPermissionBackend.java
@@ -14,8 +14,8 @@
 
 package com.google.gerrit.server.permissions;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.gerrit.server.permissions.DefaultPermissionMappings.globalPermissionName;
+import static java.util.Objects.requireNonNull;
 import static java.util.stream.Collectors.toSet;
 
 import com.google.common.collect.Sets;
@@ -79,12 +79,12 @@
 
   @Override
   public WithUser user(CurrentUser user) {
-    return new WithUserImpl(checkNotNull(user, "user"));
+    return new WithUserImpl(requireNonNull(user, "user"));
   }
 
   @Override
   public WithUser absentUser(Account.Id id) {
-    IdentifiedUser identifiedUser = identifiedUserFactory.create(checkNotNull(id, "user"));
+    IdentifiedUser identifiedUser = identifiedUserFactory.create(requireNonNull(id, "user"));
     return new WithUserImpl(identifiedUser);
   }
 
@@ -98,7 +98,7 @@
     private Boolean admin;
 
     WithUserImpl(CurrentUser user) {
-      this.user = checkNotNull(user, "user");
+      this.user = requireNonNull(user, "user");
     }
 
     @Override
@@ -238,7 +238,7 @@
     }
 
     private boolean has(String permissionName) {
-      boolean has = allow(capabilities().getPermission(checkNotNull(permissionName)));
+      boolean has = allow(capabilities().getPermission(requireNonNull(permissionName)));
       if (has) {
         logger.atFinest().log(
             "user %s has global capability %s", user.getLoggableName(), permissionName);
diff --git a/java/com/google/gerrit/server/permissions/DefaultPermissionMappings.java b/java/com/google/gerrit/server/permissions/DefaultPermissionMappings.java
index cee42ad..ece29df 100644
--- a/java/com/google/gerrit/server/permissions/DefaultPermissionMappings.java
+++ b/java/com/google/gerrit/server/permissions/DefaultPermissionMappings.java
@@ -14,8 +14,8 @@
 
 package com.google.gerrit.server.permissions;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableBiMap;
 import com.google.common.collect.ImmutableMap;
@@ -110,7 +110,7 @@
   }
 
   public static String globalPermissionName(GlobalPermission globalPermission) {
-    return checkNotNull(CAPABILITIES.get(globalPermission));
+    return requireNonNull(CAPABILITIES.get(globalPermission));
   }
 
   public static Optional<GlobalPermission> globalPermission(String capabilityName) {
diff --git a/java/com/google/gerrit/server/permissions/DefaultRefFilter.java b/java/com/google/gerrit/server/permissions/DefaultRefFilter.java
index 49ab8fe..47be6e3 100644
--- a/java/com/google/gerrit/server/permissions/DefaultRefFilter.java
+++ b/java/com/google/gerrit/server/permissions/DefaultRefFilter.java
@@ -14,12 +14,12 @@
 
 package com.google.gerrit.server.permissions;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.collect.ImmutableList.toImmutableList;
 import static com.google.gerrit.reviewdb.client.RefNames.REFS_CACHE_AUTOMERGE;
 import static com.google.gerrit.reviewdb.client.RefNames.REFS_CHANGES;
 import static com.google.gerrit.reviewdb.client.RefNames.REFS_CONFIG;
 import static com.google.gerrit.reviewdb.client.RefNames.REFS_USERS_SELF;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Maps;
@@ -417,7 +417,7 @@
 
   private boolean isGroupOwner(
       InternalGroup group, @Nullable IdentifiedUser user, boolean isAdmin) {
-    checkNotNull(group);
+    requireNonNull(group);
 
     // Keep this logic in sync with GroupControl#isOwner().
     return isAdmin
diff --git a/java/com/google/gerrit/server/permissions/LabelPermission.java b/java/com/google/gerrit/server/permissions/LabelPermission.java
index a80cc15..7cce9c4 100644
--- a/java/com/google/gerrit/server/permissions/LabelPermission.java
+++ b/java/com/google/gerrit/server/permissions/LabelPermission.java
@@ -14,9 +14,9 @@
 
 package com.google.gerrit.server.permissions;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.gerrit.server.permissions.LabelPermission.ForUser.ON_BEHALF_OF;
 import static com.google.gerrit.server.permissions.LabelPermission.ForUser.SELF;
+import static java.util.Objects.requireNonNull;
 
 import com.google.gerrit.common.data.LabelType;
 import com.google.gerrit.common.data.LabelValue;
@@ -67,7 +67,7 @@
    * @param name name of the label, e.g. {@code "Code-Review"} or {@code "Verified"}.
    */
   public LabelPermission(ForUser forUser, String name) {
-    this.forUser = checkNotNull(forUser, "ForUser");
+    this.forUser = requireNonNull(forUser, "ForUser");
     this.name = LabelType.checkName(name);
   }
 
@@ -195,8 +195,8 @@
      * @param label label name and vote.
      */
     public WithValue(ForUser forUser, LabelVote label) {
-      this.forUser = checkNotNull(forUser, "ForUser");
-      this.label = checkNotNull(label, "LabelVote");
+      this.forUser = requireNonNull(forUser, "ForUser");
+      this.label = requireNonNull(label, "LabelVote");
     }
 
     /** @return {@code SELF} or {@code ON_BEHALF_OF} (or labelAs). */
diff --git a/java/com/google/gerrit/server/permissions/PermissionBackend.java b/java/com/google/gerrit/server/permissions/PermissionBackend.java
index 4719aa9..db3c961 100644
--- a/java/com/google/gerrit/server/permissions/PermissionBackend.java
+++ b/java/com/google/gerrit/server/permissions/PermissionBackend.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.permissions;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 import static java.util.stream.Collectors.toSet;
 
 import com.google.auto.value.AutoValue;
@@ -162,7 +162,7 @@
     }
 
     public T database(ReviewDb db) {
-      return database(Providers.of(checkNotNull(db, "ReviewDb")));
+      return database(Providers.of(requireNonNull(db, "ReviewDb")));
     }
 
     @SuppressWarnings("unchecked")
@@ -266,8 +266,8 @@
      */
     public Set<Project.NameKey> filter(ProjectPermission perm, Collection<Project.NameKey> projects)
         throws PermissionBackendException {
-      checkNotNull(perm, "ProjectPermission");
-      checkNotNull(projects, "projects");
+      requireNonNull(perm, "ProjectPermission");
+      requireNonNull(projects, "projects");
       Set<Project.NameKey> allowed = Sets.newHashSetWithExpectedSize(projects.size());
       for (Project.NameKey project : projects) {
         try {
@@ -485,7 +485,7 @@
      * @throws PermissionBackendException if failure consulting backend configuration.
      */
     public Set<LabelPermission.WithValue> test(LabelType label) throws PermissionBackendException {
-      return test(valuesOf(checkNotNull(label, "LabelType")));
+      return test(valuesOf(requireNonNull(label, "LabelType")));
     }
 
     /**
@@ -497,7 +497,7 @@
      */
     public Set<LabelPermission.WithValue> testLabels(Collection<LabelType> types)
         throws PermissionBackendException {
-      checkNotNull(types, "LabelType");
+      requireNonNull(types, "LabelType");
       return test(types.stream().flatMap((t) -> valuesOf(t).stream()).collect(toSet()));
     }
 
diff --git a/java/com/google/gerrit/server/permissions/PermissionDeniedException.java b/java/com/google/gerrit/server/permissions/PermissionDeniedException.java
index 6018263..b9e86cd 100644
--- a/java/com/google/gerrit/server/permissions/PermissionDeniedException.java
+++ b/java/com/google/gerrit/server/permissions/PermissionDeniedException.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.permissions;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.gerrit.extensions.api.access.GerritPermission;
 import com.google.gerrit.extensions.restapi.AuthException;
@@ -33,7 +33,7 @@
   private final Optional<String> resource;
 
   public PermissionDeniedException(GerritPermission permission) {
-    super(MESSAGE_PREFIX + checkNotNull(permission).describeForException());
+    super(MESSAGE_PREFIX + requireNonNull(permission).describeForException());
     this.permission = permission;
     this.resource = Optional.empty();
   }
@@ -41,9 +41,9 @@
   public PermissionDeniedException(GerritPermission permission, String resource) {
     super(
         MESSAGE_PREFIX
-            + checkNotNull(permission).describeForException()
+            + requireNonNull(permission).describeForException()
             + " on "
-            + checkNotNull(resource));
+            + requireNonNull(resource));
     this.permission = permission;
     this.resource = Optional.of(resource);
   }
diff --git a/java/com/google/gerrit/server/permissions/ProjectPermission.java b/java/com/google/gerrit/server/permissions/ProjectPermission.java
index 7c58ccb..ca04f3b 100644
--- a/java/com/google/gerrit/server/permissions/ProjectPermission.java
+++ b/java/com/google/gerrit/server/permissions/ProjectPermission.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.permissions;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.gerrit.extensions.api.access.GerritPermission;
 import com.google.gerrit.reviewdb.client.RefNames;
@@ -108,7 +108,7 @@
   }
 
   ProjectPermission(String description) {
-    this.description = checkNotNull(description);
+    this.description = requireNonNull(description);
   }
 
   @Override
diff --git a/java/com/google/gerrit/server/permissions/RefPermission.java b/java/com/google/gerrit/server/permissions/RefPermission.java
index a9f2758..09eed24 100644
--- a/java/com/google/gerrit/server/permissions/RefPermission.java
+++ b/java/com/google/gerrit/server/permissions/RefPermission.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.permissions;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.gerrit.extensions.api.access.GerritPermission;
 
@@ -81,7 +81,7 @@
   }
 
   RefPermission(String description) {
-    this.description = checkNotNull(description);
+    this.description = requireNonNull(description);
   }
 
   @Override
diff --git a/java/com/google/gerrit/server/plugincontext/PluginContext.java b/java/com/google/gerrit/server/plugincontext/PluginContext.java
index 0f8a76e..70b23e3 100644
--- a/java/com/google/gerrit/server/plugincontext/PluginContext.java
+++ b/java/com/google/gerrit/server/plugincontext/PluginContext.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.plugincontext;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.base.Strings;
 import com.google.common.base.Throwables;
@@ -173,7 +173,7 @@
    * @return the created trace context
    */
   public static <T> TraceContext newTrace(Extension<T> extension) {
-    return TraceContext.open().addPluginTag(checkNotNull(extension).getPluginName());
+    return TraceContext.open().addPluginTag(requireNonNull(extension).getPluginName());
   }
 
   /**
diff --git a/java/com/google/gerrit/server/plugincontext/PluginMapEntryContext.java b/java/com/google/gerrit/server/plugincontext/PluginMapEntryContext.java
index a56c9c1..68589cf 100644
--- a/java/com/google/gerrit/server/plugincontext/PluginMapEntryContext.java
+++ b/java/com/google/gerrit/server/plugincontext/PluginMapEntryContext.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.plugincontext;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.gerrit.extensions.registration.DynamicMap;
 import com.google.gerrit.extensions.registration.Extension;
@@ -88,8 +88,8 @@
   private final PluginMetrics pluginMetrics;
 
   PluginMapEntryContext(Extension<T> extension, PluginMetrics pluginMetrics) {
-    checkNotNull(extension);
-    checkNotNull(extension.getExportName(), "export name must be set for plugin map entries");
+    requireNonNull(extension);
+    requireNonNull(extension.getExportName(), "export name must be set for plugin map entries");
     this.extension = extension;
     this.pluginMetrics = pluginMetrics;
   }
diff --git a/java/com/google/gerrit/server/plugincontext/PluginSetEntryContext.java b/java/com/google/gerrit/server/plugincontext/PluginSetEntryContext.java
index 8c381cc..afffbef 100644
--- a/java/com/google/gerrit/server/plugincontext/PluginSetEntryContext.java
+++ b/java/com/google/gerrit/server/plugincontext/PluginSetEntryContext.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.plugincontext;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.gerrit.extensions.registration.DynamicSet;
 import com.google.gerrit.extensions.registration.Extension;
@@ -85,7 +85,7 @@
   private final PluginMetrics pluginMetrics;
 
   PluginSetEntryContext(Extension<T> extension, PluginMetrics pluginMetrics) {
-    this.extension = checkNotNull(extension);
+    this.extension = requireNonNull(extension);
     this.pluginMetrics = pluginMetrics;
   }
 
diff --git a/java/com/google/gerrit/server/plugins/PluginGuiceEnvironment.java b/java/com/google/gerrit/server/plugins/PluginGuiceEnvironment.java
index 8bc04a3..ed9d2c7 100644
--- a/java/com/google/gerrit/server/plugins/PluginGuiceEnvironment.java
+++ b/java/com/google/gerrit/server/plugins/PluginGuiceEnvironment.java
@@ -14,10 +14,10 @@
 
 package com.google.gerrit.server.plugins;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.gerrit.extensions.registration.PrivateInternals_DynamicTypes.dynamicItemsOf;
 import static com.google.gerrit.extensions.registration.PrivateInternals_DynamicTypes.dynamicMapsOf;
 import static com.google.gerrit.extensions.registration.PrivateInternals_DynamicTypes.dynamicSetsOf;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.LinkedListMultimap;
 import com.google.common.collect.ListMultimap;
@@ -215,7 +215,7 @@
     // This supports older plugins that bound a plugin in the HttpModule.
     TypeLiteral<WebUiPlugin> key = TypeLiteral.get(WebUiPlugin.class);
     DynamicSet<?> web = sysSets.get(key);
-    checkNotNull(web, "DynamicSet<WebUiPlugin> exists in sysInjector");
+    requireNonNull(web, "DynamicSet<WebUiPlugin> exists in sysInjector");
 
     Map<TypeLiteral<?>, DynamicSet<?>> m = new HashMap<>(dynamicSetsOf(i));
     m.put(key, web);
diff --git a/java/com/google/gerrit/server/query/change/ChangeData.java b/java/com/google/gerrit/server/query/change/ChangeData.java
index 7fb0989..83d68db 100644
--- a/java/com/google/gerrit/server/query/change/ChangeData.java
+++ b/java/com/google/gerrit/server/query/change/ChangeData.java
@@ -14,8 +14,8 @@
 
 package com.google.gerrit.server.query.change;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.gerrit.server.ApprovalsUtil.sortApprovals;
+import static java.util.Objects.requireNonNull;
 import static java.util.stream.Collectors.toList;
 import static java.util.stream.Collectors.toMap;
 
@@ -1030,7 +1030,7 @@
         return Collections.emptyMap();
       }
       editsByUser = new HashMap<>();
-      Change.Id id = checkNotNull(change.getId());
+      Change.Id id = requireNonNull(change.getId());
       try (Repository repo = repoManager.openRepository(project())) {
         for (Ref ref : repo.getRefDatabase().getRefsByPrefix(RefNames.REFS_USERS)) {
           String name = ref.getName().substring(RefNames.REFS_USERS.length());
@@ -1172,7 +1172,7 @@
       if (!lazyLoad) {
         return ImmutableMap.of();
       }
-      starRefs = checkNotNull(starredChangesUtil).byChange(legacyId);
+      starRefs = requireNonNull(starredChangesUtil).byChange(legacyId);
     }
     return starRefs;
   }
diff --git a/java/com/google/gerrit/server/query/change/ChangeStatusPredicate.java b/java/com/google/gerrit/server/query/change/ChangeStatusPredicate.java
index 155b016..8dc17d3 100644
--- a/java/com/google/gerrit/server/query/change/ChangeStatusPredicate.java
+++ b/java/com/google/gerrit/server/query/change/ChangeStatusPredicate.java
@@ -14,8 +14,8 @@
 
 package com.google.gerrit.server.query.change;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
+import static java.util.Objects.requireNonNull;
 
 import com.google.gerrit.common.Nullable;
 import com.google.gerrit.index.query.Predicate;
@@ -98,7 +98,7 @@
   }
 
   public static ChangeStatusPredicate forStatus(Change.Status status) {
-    return new ChangeStatusPredicate(checkNotNull(status));
+    return new ChangeStatusPredicate(requireNonNull(status));
   }
 
   @Nullable private final Change.Status status;
diff --git a/java/com/google/gerrit/server/restapi/change/DeleteChangeMessage.java b/java/com/google/gerrit/server/restapi/change/DeleteChangeMessage.java
index e2e892d..881d106 100644
--- a/java/com/google/gerrit/server/restapi/change/DeleteChangeMessage.java
+++ b/java/com/google/gerrit/server/restapi/change/DeleteChangeMessage.java
@@ -14,8 +14,8 @@
 
 package com.google.gerrit.server.restapi.change;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.gerrit.server.ChangeMessagesUtil.createChangeMessageInfo;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Strings;
@@ -120,7 +120,7 @@
 
   @VisibleForTesting
   public static String createNewChangeMessage(String deletedBy, @Nullable String deletedReason) {
-    checkNotNull(deletedBy, "user name must not be null");
+    requireNonNull(deletedBy, "user name must not be null");
 
     if (Strings.isNullOrEmpty(deletedReason)) {
       return createNewChangeMessage(deletedBy);
@@ -130,7 +130,7 @@
 
   @VisibleForTesting
   public static String createNewChangeMessage(String deletedBy) {
-    checkNotNull(deletedBy, "user name must not be null");
+    requireNonNull(deletedBy, "user name must not be null");
 
     return "Change message removed by: " + deletedBy;
   }
diff --git a/java/com/google/gerrit/server/restapi/change/DeleteVote.java b/java/com/google/gerrit/server/restapi/change/DeleteVote.java
index 78e776e..57649fad 100644
--- a/java/com/google/gerrit/server/restapi/change/DeleteVote.java
+++ b/java/com/google/gerrit/server/restapi/change/DeleteVote.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.restapi.change;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.flogger.FluentLogger;
 import com.google.gerrit.common.data.LabelTypes;
@@ -214,7 +214,7 @@
 
       StringBuilder msg = new StringBuilder();
       msg.append("Removed ");
-      LabelVote.appendTo(msg, label, checkNotNull(oldApprovals.get(label)));
+      LabelVote.appendTo(msg, label, requireNonNull(oldApprovals.get(label)));
       msg.append(" by ").append(userFactory.create(accountId).getNameEmail()).append("\n");
       changeMessage =
           ChangeMessagesUtil.newMessage(ctx, msg.toString(), ChangeMessagesUtil.TAG_DELETE_VOTE);
diff --git a/java/com/google/gerrit/server/restapi/change/PostReview.java b/java/com/google/gerrit/server/restapi/change/PostReview.java
index 8b5ed68..d06766d 100644
--- a/java/com/google/gerrit/server/restapi/change/PostReview.java
+++ b/java/com/google/gerrit/server/restapi/change/PostReview.java
@@ -15,12 +15,12 @@
 package com.google.gerrit.server.restapi.change;
 
 import static com.google.common.base.MoreObjects.firstNonNull;
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static com.google.gerrit.server.CommentsUtil.setCommentRevId;
 import static com.google.gerrit.server.notedb.ReviewerStateInternal.REVIEWER;
 import static com.google.gerrit.server.permissions.LabelPermission.ForUser.ON_BEHALF_OF;
 import static java.nio.charset.StandardCharsets.UTF_8;
+import static java.util.Objects.requireNonNull;
 import static java.util.stream.Collectors.groupingBy;
 import static java.util.stream.Collectors.joining;
 import static java.util.stream.Collectors.toList;
@@ -887,7 +887,7 @@
       this.projectState = projectState;
       this.psId = psId;
       this.in = in;
-      this.accountsToNotify = checkNotNull(accountsToNotify);
+      this.accountsToNotify = requireNonNull(accountsToNotify);
     }
 
     @Override
@@ -1187,7 +1187,7 @@
       ChangeUpdate update = ctx.getUpdate(psId);
       for (Map.Entry<String, Short> ent : allApprovals.entrySet()) {
         String name = ent.getKey();
-        LabelType lt = checkNotNull(labelTypes.byLabel(name), name);
+        LabelType lt = requireNonNull(labelTypes.byLabel(name), name);
 
         PatchSetApproval c = current.remove(lt.getName());
         String normName = lt.getName();
@@ -1274,7 +1274,7 @@
       List<String> disallowed = new ArrayList<>(labelTypes.getLabelTypes().size());
 
       for (PatchSetApproval psa : del) {
-        LabelType lt = checkNotNull(labelTypes.byLabel(psa.getLabel()));
+        LabelType lt = requireNonNull(labelTypes.byLabel(psa.getLabel()));
         String normName = lt.getName();
         if (!lt.allowPostSubmit()) {
           disallowed.add(normName);
@@ -1286,7 +1286,7 @@
       }
 
       for (PatchSetApproval psa : ups) {
-        LabelType lt = checkNotNull(labelTypes.byLabel(psa.getLabel()));
+        LabelType lt = requireNonNull(labelTypes.byLabel(psa.getLabel()));
         String normName = lt.getName();
         if (!lt.allowPostSubmit()) {
           disallowed.add(normName);
diff --git a/java/com/google/gerrit/server/restapi/change/RelatedChangesSorter.java b/java/com/google/gerrit/server/restapi/change/RelatedChangesSorter.java
index fbdfb54..51f70bd 100644
--- a/java/com/google/gerrit/server/restapi/change/RelatedChangesSorter.java
+++ b/java/com/google/gerrit/server/restapi/change/RelatedChangesSorter.java
@@ -15,7 +15,7 @@
 package com.google.gerrit.server.restapi.change;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.auto.value.AutoValue;
 import com.google.common.annotations.VisibleForTesting;
@@ -95,7 +95,7 @@
 
     for (ChangeData cd : in) {
       for (PatchSet ps : cd.patchSets()) {
-        PatchSetData thisPsd = checkNotNull(byId.get(ps.getRevision().get()));
+        PatchSetData thisPsd = requireNonNull(byId.get(ps.getRevision().get()));
         if (cd.getId().equals(start.id()) && !ps.getId().equals(start.psId())) {
           otherPatchSetsOfStart.add(thisPsd);
         }
@@ -227,7 +227,7 @@
     // If we saw the same change multiple times, prefer the latest patch set.
     List<PatchSetData> result = new ArrayList<>(allPatchSets.size());
     for (PatchSetData psd : allPatchSets) {
-      if (checkNotNull(maxPatchSetIds.get(psd.id())).equals(psd.psId())) {
+      if (requireNonNull(maxPatchSetIds.get(psd.id())).equals(psd.psId())) {
         result.add(psd);
       }
     }
diff --git a/java/com/google/gerrit/server/restapi/project/CreateProject.java b/java/com/google/gerrit/server/restapi/project/CreateProject.java
index 09f8ab7..5620370 100644
--- a/java/com/google/gerrit/server/restapi/project/CreateProject.java
+++ b/java/com/google/gerrit/server/restapi/project/CreateProject.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.restapi.project;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.base.MoreObjects;
 import com.google.common.base.Strings;
@@ -225,7 +225,9 @@
       }
 
       ProjectState projectState = createProject(args);
-      checkNotNull(projectState, "failed to create project " + args.getProject().get());
+      requireNonNull(
+          projectState,
+          () -> String.format("failed to create project %s", args.getProject().get()));
 
       if (input.pluginConfigValues != null) {
         ConfigInput in = new ConfigInput();
diff --git a/java/com/google/gerrit/server/restapi/project/GarbageCollect.java b/java/com/google/gerrit/server/restapi/project/GarbageCollect.java
index e0b2d93..a699e41 100644
--- a/java/com/google/gerrit/server/restapi/project/GarbageCollect.java
+++ b/java/com/google/gerrit/server/restapi/project/GarbageCollect.java
@@ -14,9 +14,9 @@
 
 package com.google.gerrit.server.restapi.project;
 
+import static com.google.common.base.Preconditions.checkState;
 import static java.nio.charset.StandardCharsets.UTF_8;
 
-import com.google.common.base.Preconditions;
 import com.google.gerrit.common.data.GarbageCollectionResult;
 import com.google.gerrit.common.data.GlobalCapability;
 import com.google.gerrit.extensions.annotations.RequiresCapability;
@@ -101,7 +101,7 @@
     Optional<String> url =
         urlFormatter.getRestUrl("a/config/server/tasks/" + HexFormat.fromInt(task.getTaskId()));
     // We're in a HTTP handler, so must be present.
-    Preconditions.checkState(url.isPresent());
+    checkState(url.isPresent());
     return Response.accepted(url.get());
   }
 
diff --git a/java/com/google/gerrit/server/restapi/project/ListProjects.java b/java/com/google/gerrit/server/restapi/project/ListProjects.java
index 1fab368..e5f14064 100644
--- a/java/com/google/gerrit/server/restapi/project/ListProjects.java
+++ b/java/com/google/gerrit/server/restapi/project/ListProjects.java
@@ -14,9 +14,9 @@
 
 package com.google.gerrit.server.restapi.project;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.gerrit.extensions.client.ProjectState.HIDDEN;
 import static java.nio.charset.StandardCharsets.UTF_8;
+import static java.util.Objects.requireNonNull;
 import static java.util.stream.Collectors.toList;
 
 import com.google.common.base.Strings;
@@ -517,7 +517,7 @@
     List<Project.NameKey> projectNameKeys = matches.sorted().collect(toList());
     for (Project.NameKey nameKey : projectNameKeys) {
       ProjectState state = projectCache.get(nameKey);
-      checkNotNull(state, "Failed to load project %s", nameKey);
+      requireNonNull(state, () -> String.format("Failed to load project %s", nameKey));
 
       // Hidden projects(permitsRead = false) should only be accessible by the project owners.
       // READ_CONFIG is checked here because it's only allowed to project owners(ACCESS may also
diff --git a/java/com/google/gerrit/server/restapi/project/SetParent.java b/java/com/google/gerrit/server/restapi/project/SetParent.java
index d4e67b1..ca7e7aa 100644
--- a/java/com/google/gerrit/server/restapi/project/SetParent.java
+++ b/java/com/google/gerrit/server/restapi/project/SetParent.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.restapi.project;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.base.MoreObjects;
 import com.google.common.base.Strings;
@@ -112,7 +112,7 @@
       cache.evict(rsrc.getProjectState().getProject());
 
       Project.NameKey parent = project.getParent(allProjects);
-      checkNotNull(parent);
+      requireNonNull(parent);
       return parent.get();
     } catch (RepositoryNotFoundException notFound) {
       throw new ResourceNotFoundException(rsrc.getName());
diff --git a/java/com/google/gerrit/server/schema/Schema_115.java b/java/com/google/gerrit/server/schema/Schema_115.java
index 66b5e1c..70bc921 100644
--- a/java/com/google/gerrit/server/schema/Schema_115.java
+++ b/java/com/google/gerrit/server/schema/Schema_115.java
@@ -14,9 +14,10 @@
 
 package com.google.gerrit.server.schema;
 
+import static com.google.common.base.Preconditions.checkState;
 import static com.google.gerrit.server.config.ConfigUtil.storeSection;
+import static java.util.Objects.requireNonNull;
 
-import com.google.common.base.Preconditions;
 import com.google.common.base.Strings;
 import com.google.gerrit.extensions.client.DiffPreferencesInfo;
 import com.google.gerrit.extensions.client.DiffPreferencesInfo.Whitespace;
@@ -190,7 +191,7 @@
   }
 
   private static Whitespace toWhitespace(String v) {
-    Preconditions.checkNotNull(v);
+    requireNonNull(v);
     if (v.isEmpty()) {
       return Whitespace.IGNORE_NONE;
     }
@@ -202,7 +203,7 @@
   }
 
   private static boolean toBoolean(String v) {
-    Preconditions.checkState(!Strings.isNullOrEmpty(v));
+    checkState(!Strings.isNullOrEmpty(v));
     return v.equals("Y");
   }
 }
diff --git a/java/com/google/gerrit/server/schema/Schema_119.java b/java/com/google/gerrit/server/schema/Schema_119.java
index 065f5f2..e5a6405 100644
--- a/java/com/google/gerrit/server/schema/Schema_119.java
+++ b/java/com/google/gerrit/server/schema/Schema_119.java
@@ -14,6 +14,7 @@
 
 package com.google.gerrit.server.schema;
 
+import static com.google.common.base.Preconditions.checkState;
 import static com.google.gerrit.reviewdb.client.CoreDownloadSchemes.ANON_GIT;
 import static com.google.gerrit.reviewdb.client.CoreDownloadSchemes.ANON_HTTP;
 import static com.google.gerrit.reviewdb.client.CoreDownloadSchemes.HTTP;
@@ -21,7 +22,6 @@
 import static com.google.gerrit.reviewdb.client.CoreDownloadSchemes.SSH;
 import static com.google.gerrit.server.config.ConfigUtil.storeSection;
 
-import com.google.common.base.Preconditions;
 import com.google.common.base.Strings;
 import com.google.common.collect.ImmutableMap;
 import com.google.gerrit.extensions.client.GeneralPreferencesInfo;
@@ -227,7 +227,7 @@
   }
 
   private static boolean toBoolean(String v) {
-    Preconditions.checkState(!Strings.isNullOrEmpty(v));
+    checkState(!Strings.isNullOrEmpty(v));
     return v.equals("Y");
   }
 }
diff --git a/java/com/google/gerrit/server/schema/Schema_139.java b/java/com/google/gerrit/server/schema/Schema_139.java
index f362a7d..cdde7e4 100644
--- a/java/com/google/gerrit/server/schema/Schema_139.java
+++ b/java/com/google/gerrit/server/schema/Schema_139.java
@@ -14,8 +14,9 @@
 
 package com.google.gerrit.server.schema;
 
+import static com.google.common.base.Preconditions.checkState;
+
 import com.google.auto.value.AutoValue;
-import com.google.common.base.Preconditions;
 import com.google.common.base.Strings;
 import com.google.common.collect.ListMultimap;
 import com.google.common.collect.MultimapBuilder;
@@ -205,7 +206,7 @@
   }
 
   private static boolean toBoolean(String v) {
-    Preconditions.checkState(!Strings.isNullOrEmpty(v));
+    checkState(!Strings.isNullOrEmpty(v));
     return v.equals("Y");
   }
 }
diff --git a/java/com/google/gerrit/server/submit/CherryPick.java b/java/com/google/gerrit/server/submit/CherryPick.java
index 07ac532..182c22a 100644
--- a/java/com/google/gerrit/server/submit/CherryPick.java
+++ b/java/com/google/gerrit/server/submit/CherryPick.java
@@ -14,9 +14,9 @@
 
 package com.google.gerrit.server.submit;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.gerrit.server.submit.CommitMergeStatus.EMPTY_COMMIT;
 import static com.google.gerrit.server.submit.CommitMergeStatus.SKIPPED_IDENTICAL_TREE;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableList;
 import com.google.gerrit.extensions.restapi.MergeConflictException;
@@ -151,10 +151,12 @@
       if (newCommit == null && toMerge.getStatusCode() == SKIPPED_IDENTICAL_TREE) {
         return null;
       }
-      checkNotNull(
+      requireNonNull(
           newCommit,
-          "no new commit produced by CherryPick of %s, expected to fail fast",
-          toMerge.change().getId());
+          () ->
+              String.format(
+                  "no new commit produced by CherryPick of %s, expected to fail fast",
+                  toMerge.change().getId()));
       PatchSet prevPs = args.psUtil.current(ctx.getDb(), ctx.getNotes());
       PatchSet newPs =
           args.psUtil.insert(
diff --git a/java/com/google/gerrit/server/submit/MergeOp.java b/java/com/google/gerrit/server/submit/MergeOp.java
index 31c4857..e27863f9 100644
--- a/java/com/google/gerrit/server/submit/MergeOp.java
+++ b/java/com/google/gerrit/server/submit/MergeOp.java
@@ -15,9 +15,9 @@
 package com.google.gerrit.server.submit;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static java.util.Comparator.comparing;
+import static java.util.Objects.requireNonNull;
 import static java.util.stream.Collectors.toSet;
 
 import com.github.rholder.retry.Attempt;
@@ -182,8 +182,8 @@
       //
       // However, do NOT expose that ChangeData directly, as it is way out of
       // date by this point.
-      ChangeData cd = checkNotNull(changes.get(id), "ChangeData for %s", id);
-      return checkNotNull(
+      ChangeData cd = requireNonNull(changes.get(id), () -> String.format("ChangeData for %s", id));
+      return requireNonNull(
           cd.getSubmitRecords(submitRuleOptions(allowClosed)),
           "getSubmitRecord only valid after submit rules are evalutated");
     }
@@ -663,10 +663,9 @@
         BranchBatch submitting = toSubmit.get(branch);
         logger.atFine().log("adding ops for branch batch %s", submitting);
         OpenBranch ob = or.getBranch(branch);
-        checkNotNull(
+        requireNonNull(
             submitting.submitType(),
-            "null submit type for %s; expected to previously fail fast",
-            submitting);
+            String.format("null submit type for %s; expected to previously fail fast", submitting));
         Set<CodeReviewCommit> commitsToSubmit = submitting.commits();
         ob.mergeTip = new MergeTip(ob.oldTip, commitsToSubmit);
         SubmitStrategy strategy =
diff --git a/java/com/google/gerrit/server/submit/MergeSuperSet.java b/java/com/google/gerrit/server/submit/MergeSuperSet.java
index dc8b51a..7a600a1 100644
--- a/java/com/google/gerrit/server/submit/MergeSuperSet.java
+++ b/java/com/google/gerrit/server/submit/MergeSuperSet.java
@@ -14,8 +14,8 @@
 
 package com.google.gerrit.server.submit;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.base.Strings;
 import com.google.common.collect.Iterables;
@@ -88,7 +88,7 @@
 
   public MergeSuperSet setMergeOpRepoManager(MergeOpRepoManager orm) {
     checkState(this.orm == null);
-    this.orm = checkNotNull(orm);
+    this.orm = requireNonNull(orm);
     closeOrm = false;
     return this;
   }
diff --git a/java/com/google/gerrit/server/submit/SubmitStrategy.java b/java/com/google/gerrit/server/submit/SubmitStrategy.java
index 2b45cd9d..4cefd7d 100644
--- a/java/com/google/gerrit/server/submit/SubmitStrategy.java
+++ b/java/com/google/gerrit/server/submit/SubmitStrategy.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.submit;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ListMultimap;
 import com.google.common.collect.Sets;
@@ -200,10 +200,9 @@
       this.dryrun = dryrun;
 
       this.project =
-          checkNotNull(
+          requireNonNull(
               projectCache.get(destBranch.getParentKey()),
-              "project not found: %s",
-              destBranch.getParentKey());
+              () -> String.format("project not found: %s", destBranch.getParentKey()));
       this.mergeSorter =
           new MergeSorter(rw, alreadyAccepted, canMergeFlag, queryProvider, incoming);
       this.rebaseSorter =
@@ -217,7 +216,7 @@
   final Arguments args;
 
   SubmitStrategy(Arguments args) {
-    this.args = checkNotNull(args);
+    this.args = requireNonNull(args);
   }
 
   /**
diff --git a/java/com/google/gerrit/server/submit/SubmitStrategyOp.java b/java/com/google/gerrit/server/submit/SubmitStrategyOp.java
index 98c669f..8a4fbfb 100644
--- a/java/com/google/gerrit/server/submit/SubmitStrategyOp.java
+++ b/java/com/google/gerrit/server/submit/SubmitStrategyOp.java
@@ -15,9 +15,9 @@
 package com.google.gerrit.server.submit;
 
 import static com.google.common.base.MoreObjects.firstNonNull;
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static com.google.gerrit.server.notedb.ReviewerStateInternal.REVIEWER;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.base.Function;
 import com.google.common.collect.Iterables;
@@ -238,8 +238,8 @@
       mergedPatchSet = getOrCreateAlreadyMergedPatchSet(ctx);
     } else {
       PatchSet newPatchSet = updateChangeImpl(ctx);
-      PatchSet.Id oldPsId = checkNotNull(toMerge.getPatchsetId());
-      PatchSet.Id newPsId = checkNotNull(ctx.getChange().currentPatchSetId());
+      PatchSet.Id oldPsId = requireNonNull(toMerge.getPatchsetId());
+      PatchSet.Id newPsId = requireNonNull(ctx.getChange().currentPatchSetId());
       if (newPatchSet == null) {
         checkState(
             oldPsId.equals(newPsId),
@@ -250,10 +250,9 @@
         // Ok to use stale notes to get the old patch set, which didn't change
         // during the submit strategy.
         mergedPatchSet =
-            checkNotNull(
+            requireNonNull(
                 args.psUtil.get(ctx.getDb(), ctx.getNotes(), oldPsId),
-                "missing old patch set %s",
-                oldPsId);
+                () -> String.format("missing old patch set %s", oldPsId));
       } else {
         PatchSet.Id n = newPatchSet.getId();
         checkState(
@@ -270,9 +269,11 @@
     Change c = ctx.getChange();
     Change.Id id = c.getId();
     CodeReviewCommit commit = args.commitStatus.get(id);
-    checkNotNull(commit, "missing commit for change " + id);
+    requireNonNull(commit, () -> String.format("missing commit for change %s", id));
     CommitMergeStatus s = commit.getStatusCode();
-    checkNotNull(s, "status not set for change " + id + " expected to previously fail fast");
+    requireNonNull(
+        s,
+        () -> String.format("status not set for change %s; expected to previously fail fast", id));
     logger.atFine().log("Status of change %s (%s) on %s: %s", id, commit.name(), c.getDest(), s);
     setApproval(ctx, args.caller);
 
@@ -426,7 +427,7 @@
   }
 
   private String getByAccountName() {
-    checkNotNull(submitter, "getByAccountName called before submitter populated");
+    requireNonNull(submitter, "getByAccountName called before submitter populated");
     Optional<Account> account =
         args.accountCache.get(submitter.getAccountId()).map(AccountState::getAccount);
     if (account.isPresent() && account.get().getFullName() != null) {
@@ -437,7 +438,7 @@
 
   private ChangeMessage message(ChangeContext ctx, CodeReviewCommit commit, CommitMergeStatus s)
       throws OrmException {
-    checkNotNull(s, "CommitMergeStatus may not be null");
+    requireNonNull(s, "CommitMergeStatus may not be null");
     String txt = s.getDescription();
     if (s == CommitMergeStatus.CLEAN_MERGE) {
       return message(ctx, commit.getPatchsetId(), txt + getByAccountName());
diff --git a/java/com/google/gerrit/server/update/BatchUpdate.java b/java/com/google/gerrit/server/update/BatchUpdate.java
index 7cf4f19..b3472d2 100644
--- a/java/com/google/gerrit/server/update/BatchUpdate.java
+++ b/java/com/google/gerrit/server/update/BatchUpdate.java
@@ -15,9 +15,9 @@
 package com.google.gerrit.server.update;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static com.google.common.collect.ImmutableMultiset.toImmutableMultiset;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.base.Throwables;
 import com.google.common.collect.ImmutableList;
@@ -128,7 +128,7 @@
     public void execute(
         Collection<BatchUpdate> updates, BatchUpdateListener listener, boolean dryRun)
         throws UpdateException, RestApiException {
-      checkNotNull(listener);
+      requireNonNull(listener);
       checkDifferentProject(updates);
       // It's safe to downcast all members of the input collection in this case, because the only
       // way a caller could have gotten any BatchUpdates in the first place is to call the create
@@ -340,7 +340,7 @@
 
   public BatchUpdate addOp(Change.Id id, BatchUpdateOp op) {
     checkArgument(!(op instanceof InsertChangeOp), "use insertChange");
-    checkNotNull(op);
+    requireNonNull(op);
     ops.put(id, op);
     return this;
   }
diff --git a/java/com/google/gerrit/server/update/ChainedReceiveCommands.java b/java/com/google/gerrit/server/update/ChainedReceiveCommands.java
index f5f8b1d..c223aec 100644
--- a/java/com/google/gerrit/server/update/ChainedReceiveCommands.java
+++ b/java/com/google/gerrit/server/update/ChainedReceiveCommands.java
@@ -15,7 +15,7 @@
 package com.google.gerrit.server.update;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.gerrit.server.git.RefCache;
 import com.google.gerrit.server.git.RepoRefCache;
@@ -45,7 +45,7 @@
   }
 
   public ChainedReceiveCommands(RepoRefCache refCache) {
-    this.refCache = checkNotNull(refCache);
+    this.refCache = requireNonNull(refCache);
   }
 
   public RepoRefCache getRepoRefCache() {
diff --git a/java/com/google/gerrit/server/update/ChangeContext.java b/java/com/google/gerrit/server/update/ChangeContext.java
index f017580..7b5ef0e 100644
--- a/java/com/google/gerrit/server/update/ChangeContext.java
+++ b/java/com/google/gerrit/server/update/ChangeContext.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.update;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.gerrit.reviewdb.client.Change;
 import com.google.gerrit.reviewdb.client.PatchSet;
@@ -71,6 +71,6 @@
 
   /** @return change corresponding to {@link #getNotes()}. */
   default Change getChange() {
-    return checkNotNull(getNotes().getChange());
+    return requireNonNull(getNotes().getChange());
   }
 }
diff --git a/java/com/google/gerrit/server/update/Context.java b/java/com/google/gerrit/server/update/Context.java
index b22968a7..ffb0392 100644
--- a/java/com/google/gerrit/server/update/Context.java
+++ b/java/com/google/gerrit/server/update/Context.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.update;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.gerrit.reviewdb.client.Account;
 import com.google.gerrit.reviewdb.client.Project;
@@ -112,7 +112,7 @@
    * @return user.
    */
   default IdentifiedUser getIdentifiedUser() {
-    return checkNotNull(getUser()).asIdentifiedUser();
+    return requireNonNull(getUser()).asIdentifiedUser();
   }
 
   /**
diff --git a/java/com/google/gerrit/server/update/NoteDbBatchUpdate.java b/java/com/google/gerrit/server/update/NoteDbBatchUpdate.java
index 729566a..d881b0f 100644
--- a/java/com/google/gerrit/server/update/NoteDbBatchUpdate.java
+++ b/java/com/google/gerrit/server/update/NoteDbBatchUpdate.java
@@ -15,10 +15,10 @@
 package com.google.gerrit.server.update;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static com.google.common.flogger.LazyArgs.lazy;
 import static java.util.Comparator.comparing;
+import static java.util.Objects.requireNonNull;
 import static java.util.stream.Collectors.toSet;
 
 import com.google.common.base.Throwables;
@@ -216,7 +216,7 @@
     private boolean deleted;
 
     protected ChangeContextImpl(ChangeNotes notes) {
-      this.notes = checkNotNull(notes);
+      this.notes = requireNonNull(notes);
       updates = new TreeMap<>(comparing(PatchSet.Id::get));
     }
 
diff --git a/java/com/google/gerrit/server/update/RepoView.java b/java/com/google/gerrit/server/update/RepoView.java
index 62cf6b1..6b1ffa5 100644
--- a/java/com/google/gerrit/server/update/RepoView.java
+++ b/java/com/google/gerrit/server/update/RepoView.java
@@ -15,7 +15,7 @@
 package com.google.gerrit.server.update;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 import static java.util.stream.Collectors.toMap;
 
 import com.google.gerrit.reviewdb.client.Project;
@@ -66,9 +66,9 @@
         "expected RevWalk %s to be created by ObjectInserter %s",
         rw,
         inserter);
-    this.repo = checkNotNull(repo);
-    this.rw = checkNotNull(rw);
-    this.inserter = checkNotNull(inserter);
+    this.repo = requireNonNull(repo);
+    this.rw = requireNonNull(rw);
+    this.inserter = requireNonNull(inserter);
     inserterWrapper = new NonFlushingInserter(inserter);
     commands = new ChainedReceiveCommands(repo);
     closeRepo = false;
diff --git a/java/com/google/gerrit/server/update/ReviewDbBatchUpdate.java b/java/com/google/gerrit/server/update/ReviewDbBatchUpdate.java
index df50bd5..c06447d 100644
--- a/java/com/google/gerrit/server/update/ReviewDbBatchUpdate.java
+++ b/java/com/google/gerrit/server/update/ReviewDbBatchUpdate.java
@@ -14,9 +14,9 @@
 
 package com.google.gerrit.server.update;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static java.util.Comparator.comparing;
+import static java.util.Objects.requireNonNull;
 import static java.util.concurrent.TimeUnit.NANOSECONDS;
 import static java.util.stream.Collectors.toList;
 
@@ -174,7 +174,7 @@
 
     protected ChangeContextImpl(
         ChangeNotes notes, ReviewDbWrapper dbWrapper, Repository repo, RevWalk rw) {
-      this.notes = checkNotNull(notes);
+      this.notes = requireNonNull(notes);
       this.dbWrapper = dbWrapper;
       this.threadLocalRepo = repo;
       this.threadLocalRevWalk = rw;
@@ -183,7 +183,7 @@
 
     @Override
     public ReviewDb getDb() {
-      checkNotNull(dbWrapper);
+      requireNonNull(dbWrapper);
       return dbWrapper;
     }
 
diff --git a/java/com/google/gerrit/server/util/RequestScopePropagator.java b/java/com/google/gerrit/server/util/RequestScopePropagator.java
index 9c83549..e5b0eaf 100644
--- a/java/com/google/gerrit/server/util/RequestScopePropagator.java
+++ b/java/com/google/gerrit/server/util/RequestScopePropagator.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.util;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.base.Throwables;
 import com.google.gerrit.reviewdb.client.Project;
@@ -83,7 +83,7 @@
    */
   @SuppressWarnings("javadoc") // See GuiceRequestScopePropagator#wrapImpl
   public final <T> Callable<T> wrap(Callable<T> callable) {
-    final RequestContext callerContext = checkNotNull(local.getContext());
+    final RequestContext callerContext = requireNonNull(local.getContext());
     final Callable<T> wrapped = wrapImpl(context(callerContext, cleanup(callable)));
     return new Callable<T>() {
       @Override
diff --git a/java/com/google/gerrit/sshd/DatabasePubKeyAuth.java b/java/com/google/gerrit/sshd/DatabasePubKeyAuth.java
index be17219..1e32e1b 100644
--- a/java/com/google/gerrit/sshd/DatabasePubKeyAuth.java
+++ b/java/com/google/gerrit/sshd/DatabasePubKeyAuth.java
@@ -14,10 +14,10 @@
 
 package com.google.gerrit.sshd;
 
+import static com.google.common.base.Preconditions.checkState;
 import static java.nio.charset.StandardCharsets.ISO_8859_1;
 import static java.nio.charset.StandardCharsets.UTF_8;
 
-import com.google.common.base.Preconditions;
 import com.google.common.flogger.FluentLogger;
 import com.google.gerrit.common.FileUtil;
 import com.google.gerrit.server.IdentifiedUser;
@@ -101,7 +101,7 @@
   @Override
   public boolean authenticate(String username, PublicKey suppliedKey, ServerSession session) {
     SshSession sd = session.getAttribute(SshSession.KEY);
-    Preconditions.checkState(sd.getUser() == null);
+    checkState(sd.getUser() == null);
     if (PeerDaemonUser.USER_NAME.equals(username)) {
       if (myHostKeys.contains(suppliedKey) || getPeerKeys().contains(suppliedKey)) {
         PeerDaemonUser user = peerFactory.create(sd.getRemoteAddress());
diff --git a/java/com/google/gerrit/sshd/PluginCommandModule.java b/java/com/google/gerrit/sshd/PluginCommandModule.java
index 984c8a6..f0dc17a 100644
--- a/java/com/google/gerrit/sshd/PluginCommandModule.java
+++ b/java/com/google/gerrit/sshd/PluginCommandModule.java
@@ -14,7 +14,8 @@
 
 package com.google.gerrit.sshd;
 
-import com.google.common.base.Preconditions;
+import static com.google.common.base.Preconditions.checkState;
+
 import com.google.gerrit.extensions.annotations.PluginName;
 import com.google.inject.Inject;
 import com.google.inject.binder.LinkedBindingBuilder;
@@ -30,7 +31,7 @@
 
   @Override
   protected final void configure() {
-    Preconditions.checkState(command != null, "@PluginName must be provided");
+    checkState(command != null, "@PluginName must be provided");
     bind(Commands.key(command)).toProvider(new DispatchCommandProvider(command));
     configureCommands();
   }
diff --git a/java/com/google/gerrit/sshd/SingleCommandPluginModule.java b/java/com/google/gerrit/sshd/SingleCommandPluginModule.java
index 5b602f4..edc797c 100644
--- a/java/com/google/gerrit/sshd/SingleCommandPluginModule.java
+++ b/java/com/google/gerrit/sshd/SingleCommandPluginModule.java
@@ -14,7 +14,8 @@
 
 package com.google.gerrit.sshd;
 
-import com.google.common.base.Preconditions;
+import static com.google.common.base.Preconditions.checkState;
+
 import com.google.gerrit.extensions.annotations.PluginName;
 import com.google.inject.Inject;
 import com.google.inject.binder.LinkedBindingBuilder;
@@ -35,7 +36,7 @@
 
   @Override
   protected final void configure() {
-    Preconditions.checkState(command != null, "@PluginName must be provided");
+    checkState(command != null, "@PluginName must be provided");
     configure(bind(Commands.key(command)));
   }
 
diff --git a/java/com/google/gerrit/sshd/SshAutoRegisterModuleGenerator.java b/java/com/google/gerrit/sshd/SshAutoRegisterModuleGenerator.java
index 830dba7..5b6d8f9 100644
--- a/java/com/google/gerrit/sshd/SshAutoRegisterModuleGenerator.java
+++ b/java/com/google/gerrit/sshd/SshAutoRegisterModuleGenerator.java
@@ -14,9 +14,9 @@
 
 package com.google.gerrit.sshd;
 
+import static com.google.common.base.Preconditions.checkState;
 import static com.google.gerrit.server.plugins.AutoRegisterUtil.calculateBindAnnotation;
 
-import com.google.common.base.Preconditions;
 import com.google.common.collect.LinkedListMultimap;
 import com.google.common.collect.ListMultimap;
 import com.google.gerrit.extensions.annotations.Export;
@@ -61,7 +61,7 @@
   @SuppressWarnings("unchecked")
   @Override
   public void export(Export export, Class<?> type) throws InvalidPluginException {
-    Preconditions.checkState(command != null, "pluginName must be provided");
+    checkState(command != null, "pluginName must be provided");
     if (Command.class.isAssignableFrom(type)) {
       Class<Command> old = commands.get(export.value());
       if (old != null) {
@@ -86,7 +86,7 @@
 
   @Override
   public Module create() throws InvalidPluginException {
-    Preconditions.checkState(command != null, "pluginName must be provided");
+    checkState(command != null, "pluginName must be provided");
     return !commands.isEmpty() ? this : null;
   }
 }
diff --git a/java/com/google/gerrit/sshd/commands/UploadArchive.java b/java/com/google/gerrit/sshd/commands/UploadArchive.java
index e5fef71..ac914a5 100644
--- a/java/com/google/gerrit/sshd/commands/UploadArchive.java
+++ b/java/com/google/gerrit/sshd/commands/UploadArchive.java
@@ -14,8 +14,8 @@
 
 package com.google.gerrit.sshd.commands;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static java.nio.charset.StandardCharsets.UTF_8;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.base.Splitter;
 import com.google.common.collect.ImmutableMap;
@@ -246,7 +246,7 @@
 
   private boolean canRead(ObjectId revId) throws IOException, PermissionBackendException {
     ProjectState projectState = projectCache.get(projectName);
-    checkNotNull(projectState, "Failed to load project %s", projectName);
+    requireNonNull(projectState, () -> String.format("Failed to load project %s", projectName));
 
     if (!projectState.statePermitsRead()) {
       return false;
diff --git a/java/com/google/gerrit/testing/InMemoryModule.java b/java/com/google/gerrit/testing/InMemoryModule.java
index 12f3936..18dfea0 100644
--- a/java/com/google/gerrit/testing/InMemoryModule.java
+++ b/java/com/google/gerrit/testing/InMemoryModule.java
@@ -329,9 +329,7 @@
         | IllegalAccessException
         | InvocationTargetException e) {
       e.printStackTrace();
-      ProvisionException pe = new ProvisionException(e.getMessage());
-      pe.initCause(e);
-      throw pe;
+      throw new ProvisionException(e.getMessage(), e);
     }
   }
 
diff --git a/javatests/com/google/gerrit/acceptance/api/accounts/AccountIT.java b/javatests/com/google/gerrit/acceptance/api/accounts/AccountIT.java
index c0c8709..f04cefc 100644
--- a/javatests/com/google/gerrit/acceptance/api/accounts/AccountIT.java
+++ b/javatests/com/google/gerrit/acceptance/api/accounts/AccountIT.java
@@ -14,7 +14,6 @@
 
 package com.google.gerrit.acceptance.api.accounts;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.collect.ImmutableList.toImmutableList;
 import static com.google.common.truth.Truth.assertThat;
 import static com.google.common.truth.Truth.assertWithMessage;
@@ -34,6 +33,7 @@
 import static com.google.gerrit.server.group.SystemGroupBackend.ANONYMOUS_USERS;
 import static com.google.gerrit.server.group.SystemGroupBackend.REGISTERED_USERS;
 import static java.nio.charset.StandardCharsets.UTF_8;
+import static java.util.Objects.requireNonNull;
 import static java.util.concurrent.TimeUnit.SECONDS;
 import static java.util.stream.Collectors.toSet;
 import static org.eclipse.jgit.lib.Constants.OBJ_BLOB;
@@ -2848,7 +2848,7 @@
   }
 
   private void addExternalIdEmail(TestAccount account, String email) throws Exception {
-    checkNotNull(email);
+    requireNonNull(email);
     accountsUpdateProvider
         .get()
         .update(
diff --git a/javatests/com/google/gerrit/acceptance/git/AbstractPushForReview.java b/javatests/com/google/gerrit/acceptance/git/AbstractPushForReview.java
index 78a3d15..a5ff746 100644
--- a/javatests/com/google/gerrit/acceptance/git/AbstractPushForReview.java
+++ b/javatests/com/google/gerrit/acceptance/git/AbstractPushForReview.java
@@ -1554,6 +1554,22 @@
   }
 
   @Test
+  public void errorMessageFormat() throws Exception {
+    RevCommit c = createCommit(testRepo, "Message without Change-Id");
+    assertThat(GitUtil.getChangeId(testRepo, c)).isEmpty();
+    String ref = "refs/for/master";
+    PushResult r = pushHead(testRepo, ref);
+    RemoteRefUpdate refUpdate = r.getRemoteUpdate(ref);
+    assertThat(refUpdate.getStatus()).isEqualTo(RemoteRefUpdate.Status.REJECTED_OTHER_REASON);
+    String reason =
+        String.format(
+            "commit %s: missing Change-Id in message footer", c.toObjectId().abbreviate(7).name());
+    assertThat(refUpdate.getMessage()).isEqualTo(reason);
+
+    assertThat(r.getMessages()).contains("\nERROR: " + reason);
+  }
+
+  @Test
   @GerritConfig(name = "receive.allowPushToRefsChanges", value = "true")
   public void testPushWithChangedChangeId() throws Exception {
     PushOneCommit.Result r = pushTo("refs/for/master");
diff --git a/javatests/com/google/gerrit/acceptance/rest/change/HashtagsIT.java b/javatests/com/google/gerrit/acceptance/rest/change/HashtagsIT.java
index 48a1a1e..864f08d 100644
--- a/javatests/com/google/gerrit/acceptance/rest/change/HashtagsIT.java
+++ b/javatests/com/google/gerrit/acceptance/rest/change/HashtagsIT.java
@@ -14,10 +14,10 @@
 
 package com.google.gerrit.acceptance.rest.change;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.truth.Truth.assertThat;
 import static com.google.common.truth.TruthJUnit.assume;
 import static com.google.gerrit.server.group.SystemGroupBackend.REGISTERED_USERS;
+import static java.util.Objects.requireNonNull;
 import static java.util.concurrent.TimeUnit.SECONDS;
 
 import com.google.common.collect.Iterables;
@@ -298,7 +298,7 @@
 
   private void assertNoNewMessageSince(PushOneCommit.Result r, ChangeMessageInfo expected)
       throws Exception {
-    checkNotNull(expected);
+    requireNonNull(expected);
     ChangeMessageInfo last = getLastMessage(r);
     assertThat(last.message).isEqualTo(expected.message);
     assertThat(last.id).isEqualTo(expected.id);
diff --git a/javatests/com/google/gerrit/acceptance/server/change/ConsistencyCheckerIT.java b/javatests/com/google/gerrit/acceptance/server/change/ConsistencyCheckerIT.java
index 5c3a703..2af90a8 100644
--- a/javatests/com/google/gerrit/acceptance/server/change/ConsistencyCheckerIT.java
+++ b/javatests/com/google/gerrit/acceptance/server/change/ConsistencyCheckerIT.java
@@ -14,13 +14,13 @@
 
 package com.google.gerrit.acceptance.server.change;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.truth.Truth.assertThat;
 import static com.google.common.truth.TruthJUnit.assume;
 import static com.google.gerrit.extensions.common.ProblemInfo.Status.FIXED;
 import static com.google.gerrit.extensions.common.ProblemInfo.Status.FIX_FAILED;
 import static com.google.gerrit.testing.TestChanges.newPatchSet;
 import static java.util.Collections.singleton;
+import static java.util.Objects.requireNonNull;
 
 import com.google.gerrit.acceptance.AbstractDaemonTest;
 import com.google.gerrit.acceptance.NoHttpd;
@@ -953,8 +953,8 @@
 
   private static ProblemInfo problem(String message, ProblemInfo.Status status, String outcome) {
     ProblemInfo p = problem(message);
-    p.status = checkNotNull(status);
-    p.outcome = checkNotNull(outcome);
+    p.status = requireNonNull(status);
+    p.outcome = requireNonNull(outcome);
     return p;
   }
 
diff --git a/javatests/com/google/gerrit/util/http/testutil/FakeHttpServletRequest.java b/javatests/com/google/gerrit/util/http/testutil/FakeHttpServletRequest.java
index 56734ff..a4175e3 100644
--- a/javatests/com/google/gerrit/util/http/testutil/FakeHttpServletRequest.java
+++ b/javatests/com/google/gerrit/util/http/testutil/FakeHttpServletRequest.java
@@ -15,8 +15,8 @@
 package com.google.gerrit.util.http.testutil;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
 import static java.nio.charset.StandardCharsets.UTF_8;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.base.Splitter;
 import com.google.common.base.Strings;
@@ -72,11 +72,11 @@
   }
 
   public FakeHttpServletRequest(String hostName, int port, String contextPath, String servletPath) {
-    this.hostName = checkNotNull(hostName, "hostName");
+    this.hostName = requireNonNull(hostName, "hostName");
     checkArgument(port > 0);
     this.port = port;
-    this.contextPath = checkNotNull(contextPath, "contextPath");
-    this.servletPath = checkNotNull(servletPath, "servletPath");
+    this.contextPath = requireNonNull(contextPath, "contextPath");
+    this.servletPath = requireNonNull(servletPath, "servletPath");
     attributes = Maps.newConcurrentMap();
     parameters = LinkedListMultimap.create();
     headers = LinkedListMultimap.create();
diff --git a/javatests/com/google/gerrit/util/http/testutil/FakeHttpServletResponse.java b/javatests/com/google/gerrit/util/http/testutil/FakeHttpServletResponse.java
index f6b3e30..9a98ecd 100644
--- a/javatests/com/google/gerrit/util/http/testutil/FakeHttpServletResponse.java
+++ b/javatests/com/google/gerrit/util/http/testutil/FakeHttpServletResponse.java
@@ -15,9 +15,9 @@
 package com.google.gerrit.util.http.testutil;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static java.nio.charset.StandardCharsets.UTF_8;
+import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.Iterables;
 import com.google.common.collect.LinkedListMultimap;
@@ -262,7 +262,7 @@
 
   @Override
   public String getHeader(String name) {
-    return Iterables.getFirst(headers.get(checkNotNull(name.toLowerCase())), null);
+    return Iterables.getFirst(headers.get(requireNonNull(name.toLowerCase())), null);
   }
 
   @Override
@@ -272,7 +272,7 @@
 
   @Override
   public Collection<String> getHeaders(String name) {
-    return headers.get(checkNotNull(name.toLowerCase()));
+    return headers.get(requireNonNull(name.toLowerCase()));
   }
 
   public byte[] getActualBody() {