Merge branch 'stable-2.13'
* stable-2.13:
Fix NullPointerException when cloning from slave
Change-Id: I38925257079788ce5cec7c206967054bb445be1d
diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java
index 078fdaf..e7150dd 100644
--- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java
+++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java
@@ -350,7 +350,7 @@
modules.add(new DiffExecutorModule());
modules.add(new MimeUtil2Module());
modules.add(cfgInjector.getInstance(GerritGlobalModule.class));
- modules.add(new SearchingChangeCacheImpl.Module());
+ modules.add(new SearchingChangeCacheImpl.Module(slave));
modules.add(new InternalAccountDirectory.Module());
modules.add(new DefaultCacheFactory.Module());
if (emailModule != null) {
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/SearchingChangeCacheImpl.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/SearchingChangeCacheImpl.java
index 63a49a1..54ec249 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/SearchingChangeCacheImpl.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/SearchingChangeCacheImpl.java
@@ -36,6 +36,7 @@
import com.google.inject.Singleton;
import com.google.inject.TypeLiteral;
import com.google.inject.name.Named;
+import com.google.inject.util.Providers;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -52,17 +53,32 @@
static final String ID_CACHE = "changes";
public static class Module extends CacheModule {
+ private final boolean slave;
+
+ public Module() {
+ this(false);
+ }
+
+ public Module(boolean slave) {
+ this.slave = slave;
+ }
+
@Override
protected void configure() {
- cache(ID_CACHE,
- Project.NameKey.class,
- new TypeLiteral<List<CachedChange>>() {})
- .maximumWeight(0)
- .loader(Loader.class);
+ if (slave) {
+ bind(SearchingChangeCacheImpl.class)
+ .toProvider(Providers.<SearchingChangeCacheImpl> of(null));
+ } else {
+ cache(ID_CACHE,
+ Project.NameKey.class,
+ new TypeLiteral<List<CachedChange>>() {})
+ .maximumWeight(0)
+ .loader(Loader.class);
- bind(SearchingChangeCacheImpl.class);
- DynamicSet.bind(binder(), GitReferenceUpdatedListener.class)
- .to(SearchingChangeCacheImpl.class);
+ bind(SearchingChangeCacheImpl.class);
+ DynamicSet.bind(binder(), GitReferenceUpdatedListener.class)
+ .to(SearchingChangeCacheImpl.class);
+ }
}
}