diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/FanoutReplicationConfig.java b/src/main/java/com/googlesource/gerrit/plugins/replication/FanoutReplicationConfig.java
index 1fd425b..c3ae895 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/FanoutReplicationConfig.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/FanoutReplicationConfig.java
@@ -14,7 +14,6 @@
 
 package com.googlesource.gerrit.plugins.replication;
 
-import static com.google.common.io.Files.getFileExtension;
 import static com.google.common.io.Files.getNameWithoutExtension;
 import static java.nio.charset.StandardCharsets.UTF_8;
 
@@ -56,7 +55,7 @@
     try (Stream<Path> files = Files.list(remoteConfigsDirPath)) {
       files
           .filter(Files::isRegularFile)
-          .filter(path -> getFileExtension(path.toString()).equals("config"))
+          .filter(this::isConfig)
           .map(this::loadConfig)
           .filter(Optional::isPresent)
           .map(Optional::get)
@@ -118,6 +117,10 @@
     return Optional.of(cfg);
   }
 
+  private boolean isConfig(Path p) {
+    return p.toString().endsWith(".config");
+  }
+
   @Override
   public boolean isReplicateAllOnPluginStart() {
     return replicationConfig.isReplicateAllOnPluginStart();
@@ -155,7 +158,7 @@
     try (Stream<Path> files = Files.list(remoteConfigsDirPath)) {
       files
           .filter(Files::isRegularFile)
-          .filter(path -> getFileExtension(path.toString()).equals("config"))
+          .filter(this::isConfig)
           .sorted()
           .map(Path::toFile)
           .map(FileSnapshot::save)
