Merge branch 'stable-2.9'

* stable-2.9:
  Fix double packaging of commons-io

Change-Id: I0bcbbc2498fcf35edd9957e9c698e41f92f55fd5
diff --git a/BUCK b/BUCK
index 6048a93..9f54ac2 100644
--- a/BUCK
+++ b/BUCK
@@ -9,7 +9,7 @@
     'Gerrit-Module: com.googlesource.gerrit.plugins.replication.ReplicationModule',
     'Gerrit-SshModule: com.googlesource.gerrit.plugins.replication.SshModule'
   ],
-  compile_deps = [
+  provided_deps = [
     '//lib/commons:io',
   ],
 )
@@ -18,7 +18,7 @@
   name = 'replication_tests',
   srcs = glob(['src/test/java/**/*.java']),
   deps = [
-    ':replication__plugin__compile',
+    ':replication__plugin',
     '//gerrit-common:server',
     '//gerrit-reviewdb:server',
     '//gerrit-server:server',
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/AutoReloadConfigDecorator.java b/src/main/java/com/googlesource/gerrit/plugins/replication/AutoReloadConfigDecorator.java
index a2b66d1..83b97c6 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/AutoReloadConfigDecorator.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/AutoReloadConfigDecorator.java
@@ -13,13 +13,11 @@
 // limitations under the License.
 package com.googlesource.gerrit.plugins.replication;
 
-import com.google.gerrit.reviewdb.server.ReviewDb;
 import com.google.gerrit.server.PluginUser;
 import com.google.gerrit.server.account.GroupBackend;
 import com.google.gerrit.server.config.SitePaths;
 import com.google.gerrit.server.git.GitRepositoryManager;
 import com.google.gerrit.server.git.WorkQueue;
-import com.google.gwtorm.server.SchemaFactory;
 import com.google.inject.Inject;
 import com.google.inject.Injector;
 import com.google.inject.Singleton;
@@ -44,14 +42,13 @@
   private final SitePaths site;
   private final RemoteSiteUser.Factory remoteSiteUserFactory;
   private final PluginUser pluginUser;
-  private final SchemaFactory<ReviewDb> db;
   private final GitRepositoryManager gitRepositoryManager;
   private final GroupBackend groupBackend;
   private final WorkQueue workQueue;
 
   @Inject
   public AutoReloadConfigDecorator(Injector injector, SitePaths site,
-      RemoteSiteUser.Factory ruf, PluginUser pu, SchemaFactory<ReviewDb> db,
+      RemoteSiteUser.Factory ruf, PluginUser pu,
       GitRepositoryManager grm, GroupBackend gb,
       WorkQueue workQueue) throws ConfigInvalidException,
       IOException {
@@ -59,7 +56,6 @@
     this.site = site;
     this.remoteSiteUserFactory = ruf;
     this.pluginUser = pu;
-    this.db = db;
     this.gitRepositoryManager = grm;
     this.groupBackend = gb;
     this.currentConfig = loadConfig();
@@ -70,7 +66,7 @@
   private ReplicationFileBasedConfig loadConfig()
       throws ConfigInvalidException, IOException {
     return new ReplicationFileBasedConfig(injector, site,
-        remoteSiteUserFactory, pluginUser, db, gitRepositoryManager,
+        remoteSiteUserFactory, pluginUser, gitRepositoryManager,
         groupBackend);
   }
 
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..3d67d74 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/Destination.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/Destination.java
@@ -38,7 +38,6 @@
 import com.google.gerrit.server.project.PerRequestProjectControlCache;
 import com.google.gerrit.server.project.ProjectControl;
 import com.google.gerrit.server.util.RequestContext;
-import com.google.gwtorm.server.SchemaFactory;
 import com.google.inject.Injector;
 import com.google.inject.Provider;
 import com.google.inject.Provides;
@@ -97,7 +96,6 @@
   Destination(final Injector injector,
       final RemoteConfig rc,
       final Config cfg,
-      final SchemaFactory<ReviewDb> db,
       final RemoteSiteUser.Factory replicationUserFactory,
       final PluginUser pluginUser,
       final GitRepositoryManager gitRepositoryManager,
@@ -267,7 +265,7 @@
   /**
    * It schedules again a PushOp instance.
    * <p>
-   * If the reason for rescheduling is to avoid a collison
+   * If the reason for rescheduling is to avoid a collision
    * with an in-flight push to the same URI, we don't
    * mark the operation as "retrying," and we schedule
    * using the replication delay, rather than the retry
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/PushOne.java b/src/main/java/com/googlesource/gerrit/plugins/replication/PushOne.java
index 876a4d5..c9488db 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/PushOne.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/PushOne.java
@@ -317,12 +317,8 @@
       }
     } catch (IOException e) {
       stateLog.error("Cannot replicate to " + uri, e, getStatesAsArray());
-    } catch (RuntimeException e) {
+    } catch (RuntimeException | Error e) {
       stateLog.error("Unexpected error during replication to " + uri, e, getStatesAsArray());
-
-    } catch (Error e) {
-      stateLog.error("Unexpected error during replication to " + uri, e, getStatesAsArray());
-
     } finally {
       if (git != null) {
         git.close();
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationFileBasedConfig.java b/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationFileBasedConfig.java
index dd8f4f5..57d07b8 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationFileBasedConfig.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationFileBasedConfig.java
@@ -15,13 +15,11 @@
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
-import com.google.gerrit.reviewdb.server.ReviewDb;
 import com.google.gerrit.server.PluginUser;
 import com.google.gerrit.server.account.GroupBackend;
 import com.google.gerrit.server.config.SitePaths;
 import com.google.gerrit.server.git.GitRepositoryManager;
 import com.google.gerrit.server.git.WorkQueue;
-import com.google.gwtorm.server.SchemaFactory;
 import com.google.inject.Inject;
 import com.google.inject.Injector;
 import com.google.inject.Singleton;
@@ -50,7 +48,6 @@
   private boolean replicateAllOnPluginStart;
   private boolean defaultForceUpdate;
   private Injector injector;
-  private final SchemaFactory<ReviewDb> database;
   private final RemoteSiteUser.Factory replicationUserFactory;
   private final PluginUser pluginUser;
   private final GitRepositoryManager gitRepositoryManager;
@@ -60,13 +57,12 @@
   @Inject
   public ReplicationFileBasedConfig(final Injector injector, final SitePaths site,
       final RemoteSiteUser.Factory ruf, final PluginUser pu,
-      final SchemaFactory<ReviewDb> db, final GitRepositoryManager grm,
+      final GitRepositoryManager grm,
       final GroupBackend gb) throws ConfigInvalidException, IOException {
     this.cfgPath = new File(site.etc_dir, "replication.config");
     this.injector = injector;
     this.replicationUserFactory = ruf;
     this.pluginUser = pu;
-    this.database = db;
     this.gitRepositoryManager = grm;
     this.groupBackend = gb;
     this.config = new FileBasedConfig(cfgPath, FS.DETECTED);
@@ -127,7 +123,7 @@
       }
 
       Destination destination =
-          new Destination(injector, c, config, database, replicationUserFactory,
+          new Destination(injector, c, config, replicationUserFactory,
               pluginUser, gitRepositoryManager, groupBackend);
 
       if (!destination.isSingleProjectMatch()) {