Add warning when the GlobalRefDatabase is not injected
The DynamicItem<GlobalRefDatabase> is bound using the LibModule
provided by global-refdb.jar; however, failing to install the module
at Gerrit startup may lead to using a NOOP implementation without
being noticed by the Gerrit admin.
Add an explicit warning message so that the error can be easily
spotted and corrected.
Change-Id: I4fbec122ed6a289341c9938cce9c212cc34fa7e4
diff --git a/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDatabaseWrapper.java b/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDatabaseWrapper.java
index 4349193..cf0a727 100644
--- a/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDatabaseWrapper.java
+++ b/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDatabaseWrapper.java
@@ -19,6 +19,7 @@
import com.gerritforge.gerrit.globalrefdb.GlobalRefDbSystemError;
import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.NoopSharedRefDatabase;
import com.google.common.annotations.VisibleForTesting;
+import com.google.common.flogger.FluentLogger;
import com.google.gerrit.entities.Project;
import com.google.gerrit.extensions.registration.DynamicItem;
import com.google.gerrit.metrics.Timer0.Context;
@@ -33,6 +34,7 @@
* {@link NoopSharedRefDatabase} instance is wrapped instead.
*/
public class SharedRefDatabaseWrapper implements GlobalRefDatabase {
+ private static final FluentLogger log = FluentLogger.forEnclosingClass();
private static final GlobalRefDatabase NOOP_REFDB = new NoopSharedRefDatabase();
@Inject(optional = true)
@@ -131,6 +133,16 @@
}
private GlobalRefDatabase sharedRefDb() {
- return Optional.ofNullable(sharedRefDbDynamicItem).map(di -> di.get()).orElse(NOOP_REFDB);
+ if (sharedRefDbDynamicItem == null) {
+ log.atWarning().log("DynamicItem<GlobalRefDatabase> has not been injected");
+ }
+
+ return Optional.ofNullable(sharedRefDbDynamicItem)
+ .map(di -> di.get())
+ .orElseGet(
+ () -> {
+ log.atWarning().log("Using NOOP_REFDB");
+ return NOOP_REFDB;
+ });
}
}