diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/Destination.java b/src/main/java/com/googlesource/gerrit/plugins/replication/Destination.java
index 20b0a3f..feff6c0 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/Destination.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/Destination.java
@@ -200,25 +200,29 @@
     return cfg.getInt("remote", rc.getName(), name, defValue);
   }
 
-  void schedule(final Project.NameKey project, final String ref,
-      final URIish uri, ReplicationState state) {
+  private boolean isVisible(final Project.NameKey project,
+      ReplicationState... states) {
     try {
-      boolean visible = threadScoper.scope(new Callable<Boolean>(){
+      return threadScoper.scope(new Callable<Boolean>() {
         @Override
         public Boolean call() throws NoSuchProjectException {
           return controlFor(project).isVisible();
         }
       }).call();
-      if (!visible) {
-        return;
-      }
     } catch (NoSuchProjectException err) {
-      stateLog.error(String.format(
-          "source project %s not available", project), err, state);
-      return;
+      stateLog.error(String.format("source project %s not available", project),
+          err, states);
     } catch (Exception e) {
       throw Throwables.propagate(e);
     }
+    return false;
+  }
+
+  void schedule(final Project.NameKey project, final String ref,
+      final URIish uri, ReplicationState state) {
+    if (!isVisible(project, state)) {
+      return;
+    }
 
     if (!replicatePermissions) {
       PushOne e;
@@ -380,7 +384,11 @@
     }
   }
 
-  boolean wouldPushProject(Project.NameKey project) {
+  boolean wouldPushProject(final Project.NameKey project) {
+    if (!isVisible(project)) {
+      return false;
+    }
+
     // by default push all projects
     if (projects.length < 1) {
       return true;
