diff --git a/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/ChangesIndexHealthCheck.java b/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/ChangesIndexHealthCheck.java
index ab281f9..6fb55ab 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/ChangesIndexHealthCheck.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/ChangesIndexHealthCheck.java
@@ -21,7 +21,7 @@
 import com.google.gerrit.index.IndexType;
 import com.google.gerrit.metrics.MetricMaker;
 import com.google.gerrit.server.config.GerritServerConfig;
-import com.google.gerrit.server.config.SitePaths;
+import com.google.gerrit.server.index.IndexDir;
 import com.google.gerrit.server.index.OnlineUpgradeListener;
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
@@ -41,7 +41,7 @@
   private static final FluentLogger logger = FluentLogger.forEnclosingClass();
   private static final String lockFilename = "write.lock";
 
-  private final SitePaths sitePaths;
+  private final Path indexDir;
   private final boolean isLuceneIndex;
   private final AtomicReference<Optional<ChangesIndexLockFiles>> changes;
 
@@ -51,11 +51,11 @@
       ListeningExecutorService executor,
       HealthCheckConfig config,
       MetricMaker metricMaker,
-      SitePaths sitePaths) {
+      @IndexDir Path indexDir) {
     super(executor, config, CHANGES_INDEX, metricMaker);
-    this.sitePaths = sitePaths;
+    this.indexDir = indexDir;
     this.isLuceneIndex = isIndexTypeLucene(cfg);
-    this.changes = new AtomicReference<>(getChangesIndexLockFiles(sitePaths.index_dir));
+    this.changes = new AtomicReference<>(getChangesIndexLockFiles(indexDir));
   }
 
   @Override
@@ -78,8 +78,7 @@
     }
 
     Optional<ChangesIndexLockFiles> newLockFiles =
-        Optional.of(
-            getChangesLockFiles(sitePaths.index_dir, String.format("changes_%04d", newVersion)));
+        Optional.of(getChangesLockFiles(indexDir, String.format("changes_%04d", newVersion)));
     if (!changes.compareAndSet(changes.get(), newLockFiles)) {
       logger.atInfo().log(
           "New version %d of changes index healthcheck lock files was set already by another"
diff --git a/src/test/java/com/googlesource/gerrit/plugins/healthcheck/ChangesIndexHealthCheckIT.java b/src/test/java/com/googlesource/gerrit/plugins/healthcheck/ChangesIndexHealthCheckIT.java
index 2a18dd3..be32203 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/healthcheck/ChangesIndexHealthCheckIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/healthcheck/ChangesIndexHealthCheckIT.java
@@ -22,6 +22,8 @@
 import com.google.gerrit.acceptance.TestPlugin;
 import com.google.gerrit.acceptance.UseLocalDisk;
 import com.google.gerrit.acceptance.config.GerritConfig;
+import com.google.gerrit.server.index.IndexDir;
+import com.google.inject.Inject;
 import java.io.IOException;
 import java.nio.file.DirectoryStream;
 import java.nio.file.Files;
@@ -38,6 +40,8 @@
 @Sandboxed
 public class ChangesIndexHealthCheckIT extends AbstractHealthCheckIntegrationTest {
 
+  @Inject @IndexDir Path indexDir;
+
   @Test
   @UseLocalDisk
   @GerritConfig(name = "index.type", value = "lucene")
@@ -68,7 +72,7 @@
 
     assertCheckResult(getResponseJson(resp), CHANGES_INDEX, "passed");
 
-    Path openChangesIndexLockPath = getIndexLockFile(sitePaths.index_dir, indexType);
+    Path openChangesIndexLockPath = getIndexLockFile(indexDir, indexType);
     assertThat(
             openChangesIndexLockPath
                 .toFile()
