diff --git a/src/main/java/com/googlesource/gerrit/plugins/findowners/OwnersDb.java b/src/main/java/com/googlesource/gerrit/plugins/findowners/OwnersDb.java
index d706f2d..7058842 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/findowners/OwnersDb.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/findowners/OwnersDb.java
@@ -431,7 +431,7 @@
     if (content == null) {
       content = "";
       if (repoManager != null) { // ParserTest can call with null repoManager
-        try (Repository repo = repoManager.openRepository(new Project.NameKey(project))) {
+        try (Repository repo = repoManager.openRepository(Project.nameKey(project))) {
           ObjectId id = repo.resolve(branch);
           if (id != null) {
             return getFile(readFiles, repo, project, id, file, logs);
diff --git a/src/test/java/com/googlesource/gerrit/plugins/findowners/FindOwners.java b/src/test/java/com/googlesource/gerrit/plugins/findowners/FindOwners.java
index c1d2fd6..d31be19 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/findowners/FindOwners.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/findowners/FindOwners.java
@@ -219,7 +219,7 @@
   }
 
   protected Project.NameKey newProject(String name) {
-    return newProject(name, new Project.NameKey("All-Projects"));
+    return newProject(name, Project.nameKey("All-Projects"));
   }
 
   protected Project.NameKey newProject(String name, Project.NameKey parent) {
diff --git a/src/test/java/com/googlesource/gerrit/plugins/findowners/OwnersValidatorIT.java b/src/test/java/com/googlesource/gerrit/plugins/findowners/OwnersValidatorIT.java
index fbce8d3..f46b7ad 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/findowners/OwnersValidatorIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/findowners/OwnersValidatorIT.java
@@ -71,7 +71,7 @@
   protected Project.NameKey newProject(String name) {
     return projectOperations
         .newProject()
-        .parent(new Project.NameKey("All-Projects"))
+        .parent(Project.nameKey("All-Projects"))
         .name(name)
         .create();
   }
@@ -90,7 +90,7 @@
 
   private static class MockedCommitReceivedEvent extends CommitReceivedEvent {
     MockedCommitReceivedEvent(String project, RevWalk revWalk, RevCommit commit) {
-      this.project = new Project(new Project.NameKey(project));
+      this.project = new Project(Project.nameKey(project));
       this.revWalk = revWalk;
       this.commit = commit;
       this.refName = "master";
