Fix deprecation warnings from latest JGit update

 - FS is no longer required for LockFile constructor.
 - TestRepository#getClock was renamed getDate.
 - Replace usages of RefDatabase#getRef with either exactRef, when we
   know we can bypass the full lookup path, or findRef, where the
   input is user-provided and we might need to add an implicit prefix.

Change-Id: I6309b91ccf99ffaa724be273ddae0d9857b825f9
diff --git a/gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/AbstractDaemonTest.java b/gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/AbstractDaemonTest.java
index f2c6ac3..ddb37f4 100644
--- a/gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/AbstractDaemonTest.java
+++ b/gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/AbstractDaemonTest.java
@@ -397,7 +397,7 @@
   }
 
   protected TestRepository<?>.CommitBuilder amendBuilder() throws Exception {
-    ObjectId head = repo().getRef("HEAD").getObjectId();
+    ObjectId head = repo().exactRef("HEAD").getObjectId();
     TestRepository<?>.CommitBuilder b = testRepo.amendRef("HEAD");
     Optional<String> id = GitUtil.getChangeId(testRepo, head);
     // TestRepository behaves like "git commit --amend -m foo", which does not
diff --git a/gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/PushOneCommit.java b/gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/PushOneCommit.java
index 77c38c8..4c75ad4 100644
--- a/gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/PushOneCommit.java
+++ b/gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/PushOneCommit.java
@@ -176,7 +176,7 @@
     }
     commitBuilder.message(subject)
       .author(i)
-      .committer(new PersonIdent(i, testRepo.getClock()));
+      .committer(new PersonIdent(i, testRepo.getDate()));
   }
 
   public Result to(String ref) throws Exception {
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/accounts/AccountIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/accounts/AccountIT.java
index 37d5484..ac5b262 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/accounts/AccountIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/accounts/AccountIT.java
@@ -102,7 +102,7 @@
   @After
   public void clearPublicKeyStore() throws Exception {
     try (Repository repo = repoManager.openRepository(allUsers)) {
-      Ref ref = repo.getRef(REFS_GPG_KEYS);
+      Ref ref = repo.exactRef(REFS_GPG_KEYS);
       if (ref != null) {
         RefUpdate ru = repo.updateRef(REFS_GPG_KEYS);
         ru.setForceUpdate(true);
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/change/ChangeIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/change/ChangeIT.java
index 8e001e6..a2cf5f4 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/change/ChangeIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/change/ChangeIT.java
@@ -106,7 +106,7 @@
     gApi.changes().id(changeId).get();
 
     BranchInput b = new BranchInput();
-    b.revision = repo().getRef("HEAD").getObjectId().name();
+    b.revision = repo().exactRef("HEAD").getObjectId().name();
     gApi.projects()
         .name(project.get())
         .branch("other")
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/revision/RevisionIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/revision/RevisionIT.java
index 3cddcd9..760121c 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/revision/RevisionIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/revision/RevisionIT.java
@@ -377,7 +377,7 @@
 
   @Test
   public void mergeable() throws Exception {
-    ObjectId initial = repo().getRef(HEAD).getLeaf().getObjectId();
+    ObjectId initial = repo().exactRef(HEAD).getLeaf().getObjectId();
 
     PushOneCommit push1 =
         pushFactory.create(db, admin.getIdent(), testRepo, PushOneCommit.SUBJECT,
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/ForcePushIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/ForcePushIT.java
index 26db819..38f28df 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/ForcePushIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/ForcePushIT.java
@@ -29,7 +29,7 @@
 
   @Test
   public void forcePushNotAllowed() throws Exception {
-    ObjectId initial = repo().getRef(HEAD).getLeaf().getObjectId();
+    ObjectId initial = repo().exactRef(HEAD).getLeaf().getObjectId();
     PushOneCommit push1 =
         pushFactory.create(db, admin.getIdent(), testRepo, "change1", "a.txt", "content");
     PushOneCommit.Result r1 = push1.to("refs/heads/master");
@@ -49,7 +49,7 @@
 
   @Test
   public void forcePushAllowed() throws Exception {
-    ObjectId initial = repo().getRef(HEAD).getLeaf().getObjectId();
+    ObjectId initial = repo().exactRef(HEAD).getLeaf().getObjectId();
     grant(Permission.PUSH, project, "refs/*", true);
     PushOneCommit push1 =
         pushFactory.create(db, admin.getIdent(), testRepo, "change1", "a.txt", "content");
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/SubmitOnPushIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/SubmitOnPushIT.java
index 6e27099..08b2b58 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/SubmitOnPushIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/SubmitOnPushIT.java
@@ -107,7 +107,7 @@
 
   @Test
   public void submitOnPushMergeConflict() throws Exception {
-    ObjectId objectId = repo().getRef("HEAD").getObjectId();
+    ObjectId objectId = repo().exactRef("HEAD").getObjectId();
     push("refs/heads/master", "one change", "a.txt", "some content");
     testRepo.reset(objectId);
 
@@ -123,7 +123,7 @@
   @Test
   public void submitOnPushSuccessfulMerge() throws Exception {
     String master = "refs/heads/master";
-    ObjectId objectId = repo().getRef("HEAD").getObjectId();
+    ObjectId objectId = repo().exactRef("HEAD").getObjectId();
     push(master, "one change", "a.txt", "some content");
     testRepo.reset(objectId);
 
@@ -233,7 +233,7 @@
   private void assertCommit(Project.NameKey project, String branch) throws IOException {
     try (Repository r = repoManager.openRepository(project);
         RevWalk rw = new RevWalk(r)) {
-      RevCommit c = rw.parseCommit(r.getRef(branch).getObjectId());
+      RevCommit c = rw.parseCommit(r.exactRef(branch).getObjectId());
       assertThat(c.getShortMessage()).isEqualTo(PushOneCommit.SUBJECT);
       assertThat(c.getAuthorIdent().getEmailAddress()).isEqualTo(admin.email);
       assertThat(c.getCommitterIdent().getEmailAddress()).isEqualTo(
@@ -244,7 +244,7 @@
   private void assertMergeCommit(String branch, String subject) throws IOException {
     try (Repository r = repoManager.openRepository(project);
         RevWalk rw = new RevWalk(r)) {
-      RevCommit c = rw.parseCommit(r.getRef(branch).getObjectId());
+      RevCommit c = rw.parseCommit(r.exactRef(branch).getObjectId());
       assertThat(c.getParentCount()).isEqualTo(2);
       assertThat(c.getShortMessage()).isEqualTo("Merge \"" + subject + "\"");
       assertThat(c.getAuthorIdent().getEmailAddress()).isEqualTo(admin.email);
@@ -256,7 +256,7 @@
   private void assertTag(Project.NameKey project, String branch,
       PushOneCommit.Tag tag) throws IOException {
     try (Repository repo = repoManager.openRepository(project)) {
-      Ref tagRef = repo.getRef(tag.name);
+      Ref tagRef = repo.findRef(tag.name);
       assertThat(tagRef).isNotNull();
       ObjectId taggedCommit = null;
       if (tag instanceof PushOneCommit.AnnotatedTag) {
@@ -273,7 +273,7 @@
       } else {
         taggedCommit = tagRef.getObjectId();
       }
-      ObjectId headCommit = repo.getRef(branch).getObjectId();
+      ObjectId headCommit = repo.exactRef(branch).getObjectId();
       assertThat(taggedCommit).isNotNull();
       assertThat(taggedCommit).isEqualTo(headCommit);
     }
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/VisibleRefFilterIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/VisibleRefFilterIT.java
index a9a7dfa..1ded088 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/VisibleRefFilterIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/VisibleRefFilterIT.java
@@ -104,13 +104,13 @@
       // master-tag -> master
       RefUpdate mtu = repo.updateRef("refs/tags/master-tag");
       mtu.setExpectedOldObjectId(ObjectId.zeroId());
-      mtu.setNewObjectId(repo.getRef("refs/heads/master").getObjectId());
+      mtu.setNewObjectId(repo.exactRef("refs/heads/master").getObjectId());
       assertThat(mtu.update()).isEqualTo(RefUpdate.Result.NEW);
 
       // branch-tag -> branch
       RefUpdate btu = repo.updateRef("refs/tags/branch-tag");
       btu.setExpectedOldObjectId(ObjectId.zeroId());
-      btu.setNewObjectId(repo.getRef("refs/heads/branch").getObjectId());
+      btu.setNewObjectId(repo.exactRef("refs/heads/branch").getObjectId());
       assertThat(btu.update()).isEqualTo(RefUpdate.Result.NEW);
     }
   }
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/AbstractSubmit.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/AbstractSubmit.java
index 2bd093d..17b1b9c 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/AbstractSubmit.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/AbstractSubmit.java
@@ -255,7 +255,7 @@
         repoManager.openRepository(new Project.NameKey(c.project))) {
       String refName = new PatchSet.Id(new Change.Id(c._number), expectedNum)
           .toRefName();
-      Ref ref = repo.getRef(refName);
+      Ref ref = repo.exactRef(refName);
       assertThat(ref).named(refName).isNotNull();
       assertThat(ref.getObjectId()).isEqualTo(expectedId);
     }
@@ -347,7 +347,7 @@
     try (Repository repo = repoManager.openRepository(project);
         RevWalk rw = new RevWalk(repo)) {
       rw.markStart(rw.parseCommit(
-          repo.getRef("refs/heads/" + branch).getObjectId()));
+          repo.exactRef("refs/heads/" + branch).getObjectId()));
       return Lists.newArrayList(rw);
     }
   }
@@ -358,7 +358,7 @@
 
   private RevCommit getHead(Repository repo, String name) throws IOException {
     try (RevWalk rw = new RevWalk(repo)) {
-      return rw.parseCommit(repo.getRef(name).getObjectId());
+      return rw.parseCommit(repo.exactRef(name).getObjectId());
     }
   }
 
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/CreateProjectIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/CreateProjectIT.java
index 07a2110..c33e14d 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/CreateProjectIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/CreateProjectIT.java
@@ -269,7 +269,7 @@
       throws RepositoryNotFoundException, IOException {
     try (Repository repo =
         repoManager.openRepository(new Project.NameKey(projectName))) {
-      assertThat(repo.getRef(Constants.HEAD).getTarget().getName())
+      assertThat(repo.exactRef(Constants.HEAD).getTarget().getName())
         .isEqualTo(expectedRef);
     }
   }
@@ -281,7 +281,7 @@
         RevWalk rw = new RevWalk(repo);
         TreeWalk tw = new TreeWalk(rw.getObjectReader())) {
       for (String ref : refs) {
-        RevCommit commit = rw.lookupCommit(repo.getRef(ref).getObjectId());
+        RevCommit commit = rw.lookupCommit(repo.exactRef(ref).getObjectId());
         rw.parseBody(commit);
         tw.addTree(commit.getTree());
         assertThat(tw.next()).isFalse();
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/change/ConsistencyCheckerIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/change/ConsistencyCheckerIT.java
index 27f8fc8..272cdcd 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/change/ConsistencyCheckerIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/change/ConsistencyCheckerIT.java
@@ -61,7 +61,7 @@
     testRepo = new TestRepository<>(
         (InMemoryRepository) repoManager.openRepository(project));
     tip = testRepo.getRevWalk().parseCommit(
-        testRepo.getRepository().getRef("HEAD").getObjectId());
+        testRepo.getRepository().exactRef("HEAD").getObjectId());
     adminId = admin.getId();
     checker = checkerProvider.get();
   }
@@ -180,7 +180,7 @@
     assertThat(p.status).isEqualTo(ProblemInfo.Status.FIXED);
     assertThat(p.outcome).isEqualTo("Repaired patch set ref");
 
-    assertThat(testRepo.getRepository().getRef(refName).getObjectId().name())
+    assertThat(testRepo.getRepository().exactRef(refName).getObjectId().name())
         .isEqualTo(ps.getRevision().get());
   }
 
@@ -310,7 +310,7 @@
   public void missingDestRef() throws Exception {
     String ref = "refs/heads/master";
     // Detach head so we're allowed to delete ref.
-    testRepo.reset(testRepo.getRepository().getRef(ref).getObjectId());
+    testRepo.reset(testRepo.getRepository().exactRef(ref).getObjectId());
     RefUpdate ru = testRepo.getRepository().updateRef(ref);
     ru.setForceUpdate(true);
     assertThat(ru.delete()).isEqualTo(RefUpdate.Result.FORCED);
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/change/GetRelatedIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/change/GetRelatedIT.java
index 2f110de..c59a3eb 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/change/GetRelatedIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/change/GetRelatedIT.java
@@ -163,7 +163,7 @@
     // 2,2---1,2---3,1
 
     // Create two commits and push.
-    ObjectId initial = repo().getRef("HEAD").getObjectId();
+    ObjectId initial = repo().exactRef("HEAD").getObjectId();
     RevCommit c1_1 = commitBuilder()
         .add("a.txt", "1")
         .message("subject: 1")
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/change/SubmittedTogetherIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/change/SubmittedTogetherIT.java
index 5a8a44c..4cbf068 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/change/SubmittedTogetherIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/change/SubmittedTogetherIT.java
@@ -194,7 +194,7 @@
   private RevCommit getRemoteHead() throws IOException {
     try (Repository repo = repoManager.openRepository(project);
         RevWalk rw = new RevWalk(repo)) {
-      return rw.parseCommit(repo.getRef("refs/heads/master").getObjectId());
+      return rw.parseCommit(repo.exactRef("refs/heads/master").getObjectId());
     }
   }
 
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/project/LabelTypeIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/project/LabelTypeIT.java
index 534afcb..73fbc65 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/project/LabelTypeIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/project/LabelTypeIT.java
@@ -330,7 +330,7 @@
     revision(r).review(ReviewInput.approve());
     revision(r).submit();
     try (Repository repo = repoManager.openRepository(project)) {
-      assertThat(repo.getRef("refs/heads/master").getObjectId()).isEqualTo(
+      assertThat(repo.exactRef("refs/heads/master").getObjectId()).isEqualTo(
           r.getCommitId());
     }
   }
diff --git a/gerrit-gpg/src/test/java/com/google/gerrit/gpg/PublicKeyStoreTest.java b/gerrit-gpg/src/test/java/com/google/gerrit/gpg/PublicKeyStoreTest.java
index 9c0a908..5a1cd45 100644
--- a/gerrit-gpg/src/test/java/com/google/gerrit/gpg/PublicKeyStoreTest.java
+++ b/gerrit-gpg/src/test/java/com/google/gerrit/gpg/PublicKeyStoreTest.java
@@ -149,7 +149,7 @@
         RevWalk rw = new RevWalk(reader)) {
       NoteMap notes = NoteMap.read(
           reader, tr.getRevWalk().parseCommit(
-            tr.getRepository().getRef(REFS_GPG_KEYS).getObjectId()));
+            tr.getRepository().exactRef(REFS_GPG_KEYS).getObjectId()));
       String contents = new String(
           reader.open(notes.get(keyObjectId(key1.getKeyId()))).getBytes(),
           UTF_8);
diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/ProtoGen.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/ProtoGen.java
index 84741d4..7dba8ed 100644
--- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/ProtoGen.java
+++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/ProtoGen.java
@@ -21,7 +21,6 @@
 import com.google.gwtorm.schema.java.JavaSchemaModel;
 
 import org.eclipse.jgit.internal.storage.file.LockFile;
-import org.eclipse.jgit.util.FS;
 import org.eclipse.jgit.util.IO;
 import org.kohsuke.args4j.Option;
 
@@ -39,7 +38,7 @@
 
   @Override
   public int run() throws Exception {
-    LockFile lock = new LockFile(file.getAbsoluteFile(), FS.DETECTED);
+    LockFile lock = new LockFile(file.getAbsoluteFile());
     if (!lock.lock()) {
       throw die("Cannot lock " + file);
     }
diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/InitContainer.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/InitContainer.java
index 60ff665..36754a1 100644
--- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/InitContainer.java
+++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/InitContainer.java
@@ -27,7 +27,6 @@
 import com.google.inject.Singleton;
 
 import org.eclipse.jgit.internal.storage.file.LockFile;
-import org.eclipse.jgit.util.FS;
 
 import java.io.FileNotFoundException;
 import java.io.IOException;
@@ -96,7 +95,7 @@
         try (InputStream in = Files.newInputStream(myWar)) {
           Files.createDirectories(siteWar.getParent());
 
-          LockFile lf = new LockFile(siteWar.toFile(), FS.DETECTED);
+          LockFile lf = new LockFile(siteWar.toFile());
           if (!lf.lock()) {
             throw new IOException("Cannot lock " + siteWar);
           }
diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/api/InitUtil.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/api/InitUtil.java
index 904af2f..1e1ddd7 100644
--- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/api/InitUtil.java
+++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/api/InitUtil.java
@@ -21,7 +21,6 @@
 
 import org.eclipse.jgit.internal.storage.file.LockFile;
 import org.eclipse.jgit.storage.file.FileBasedConfig;
-import org.eclipse.jgit.util.FS;
 import org.eclipse.jgit.util.SystemReader;
 
 import java.io.ByteArrayInputStream;
@@ -162,7 +161,7 @@
     }
 
     Files.createDirectories(dst.getParent());
-    LockFile lf = new LockFile(dst.toFile(), FS.DETECTED);
+    LockFile lf = new LockFile(dst.toFile());
     if (!lf.lock()) {
       throw new IOException("Cannot lock " + dst);
     }
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java
index eebae70..e162757 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java
@@ -316,18 +316,17 @@
   }
 
   @Override
-  public void setProjectDescription(final Project.NameKey name,
-      final String description) {
+  public void setProjectDescription(Project.NameKey name, String description) {
     // Update git's description file, in case gitweb is being used
     //
     try (Repository e = openRepository(name)) {
-      final String old = getProjectDescription(e);
+      String old = getProjectDescription(e);
       if ((old == null && description == null)
           || (old != null && old.equals(description))) {
         return;
       }
 
-      final LockFile f = new LockFile(new File(e.getDirectory(), "description"), FS.DETECTED);
+      LockFile f = new LockFile(new File(e.getDirectory(), "description"));
       if (f.lock()) {
         String d = description;
         if (d != null) {
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/SubmoduleOp.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/SubmoduleOp.java
index 7951fd3..6670450 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/SubmoduleOp.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/SubmoduleOp.java
@@ -229,12 +229,12 @@
     boolean sameAuthorForAll = true;
 
     try (Repository pdb = repoManager.openRepository(subscriber.getParentKey())) {
-      if (pdb.getRef(subscriber.get()) == null) {
+      if (pdb.exactRef(subscriber.get()) == null) {
         throw new SubmoduleException(
             "The branch was probably deleted from the subscriber repository");
       }
 
-      DirCache dc = readTree(pdb, pdb.getRef(subscriber.get()));
+      DirCache dc = readTree(pdb, pdb.exactRef(subscriber.get()));
       DirCacheEditor ed = dc.editor();
 
       for (SubmoduleSubscription s : updates) {
@@ -308,7 +308,7 @@
       ObjectId tree = dc.writeTree(oi);
 
       ObjectId currentCommitId =
-          pdb.getRef(subscriber.get()).getObjectId();
+          pdb.exactRef(subscriber.get()).getObjectId();
 
       CommitBuilder commit = new CommitBuilder();
       commit.setTreeId(tree);
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/project/ListProjects.java b/gerrit-server/src/main/java/com/google/gerrit/server/project/ListProjects.java
index 0704cb9..62e18fe 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/project/ListProjects.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/project/ListProjects.java
@@ -507,7 +507,7 @@
     Ref[] result = new Ref[showBranch.size()];
     try (Repository git = repoManager.openRepository(projectName)) {
       for (int i = 0; i < showBranch.size(); i++) {
-        Ref ref = git.getRef(showBranch.get(i));
+        Ref ref = git.findRef(showBranch.get(i));
         if (ref != null
           && ref.getObjectId() != null
           && (projectControl.controlForRef(ref.getLeaf().getName()).isVisible())
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/securestore/DefaultSecureStore.java b/gerrit-server/src/main/java/com/google/gerrit/server/securestore/DefaultSecureStore.java
index a2693e0..b481944 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/securestore/DefaultSecureStore.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/securestore/DefaultSecureStore.java
@@ -93,7 +93,7 @@
     if (FileUtil.modified(sec)) {
       final byte[] out = Constants.encode(sec.toText());
       final File path = sec.getFile();
-      final LockFile lf = new LockFile(path, FS.DETECTED);
+      final LockFile lf = new LockFile(path);
       if (!lf.lock()) {
         throw new IOException("Cannot lock " + path);
       }
diff --git a/gerrit-server/src/test/java/com/google/gerrit/server/git/ProjectConfigTest.java b/gerrit-server/src/test/java/com/google/gerrit/server/git/ProjectConfigTest.java
index fcc7288..6cc593e 100644
--- a/gerrit-server/src/test/java/com/google/gerrit/server/git/ProjectConfigTest.java
+++ b/gerrit-server/src/test/java/com/google/gerrit/server/git/ProjectConfigTest.java
@@ -258,7 +258,7 @@
       md.setMessage("Edit\n");
       cfg.commit(md);
 
-      Ref ref = db.getRef(RefNames.REFS_CONFIG);
+      Ref ref = db.exactRef(RefNames.REFS_CONFIG);
       return util.getRevWalk().parseCommit(ref.getObjectId());
     }
   }
diff --git a/gerrit-server/src/test/java/com/google/gerrit/server/notedb/ChangeNotesTest.java b/gerrit-server/src/test/java/com/google/gerrit/server/notedb/ChangeNotesTest.java
index 04b51fd..611054d 100644
--- a/gerrit-server/src/test/java/com/google/gerrit/server/notedb/ChangeNotesTest.java
+++ b/gerrit-server/src/test/java/com/google/gerrit/server/notedb/ChangeNotesTest.java
@@ -559,12 +559,12 @@
       batch1 = update1.openUpdateInBatch(bru);
       batch1.write(update1, new CommitBuilder());
       batch1.commit();
-      assertThat(repo.getRef(update1.getRefName())).isNull();
+      assertThat(repo.exactRef(update1.getRefName())).isNull();
 
       batch2 = update2.openUpdateInBatch(bru);
       batch2.write(update2, new CommitBuilder());
       batch2.commit();
-      assertThat(repo.getRef(update2.getRefName())).isNull();
+      assertThat(repo.exactRef(update2.getRefName())).isNull();
     } finally {
       if (batch1 != null) {
         batch1.close();
@@ -586,8 +586,8 @@
     assertThat(cmds.get(0).getResult()).isEqualTo(ReceiveCommand.Result.OK);
     assertThat(cmds.get(1).getResult()).isEqualTo(ReceiveCommand.Result.OK);
 
-    assertThat(repo.getRef(update1.getRefName())).isNotNull();
-    assertThat(repo.getRef(update2.getRefName())).isNotNull();
+    assertThat(repo.exactRef(update1.getRefName())).isNotNull();
+    assertThat(repo.exactRef(update2.getRefName())).isNotNull();
   }
 
   @Test
diff --git a/plugins/replication b/plugins/replication
index 4ab29b7..e4aa030 160000
--- a/plugins/replication
+++ b/plugins/replication
@@ -1 +1 @@
-Subproject commit 4ab29b755a147a69d88bf000e276a7a2eaa6403b
+Subproject commit e4aa03008f17d085a6d9d77459836ab2a9b3062b