Merge "Avoid throwing IllegalArgumentException when failing to parse an enum"
diff --git a/java/com/google/gerrit/server/config/ConfigUtil.java b/java/com/google/gerrit/server/config/ConfigUtil.java
index 43c05e0..27ded63 100644
--- a/java/com/google/gerrit/server/config/ConfigUtil.java
+++ b/java/com/google/gerrit/server/config/ConfigUtil.java
@@ -16,6 +16,7 @@
import static java.util.Objects.requireNonNull;
+import com.google.common.flogger.FluentLogger;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Modifier;
@@ -30,6 +31,8 @@
import org.eclipse.jgit.lib.Config;
public class ConfigUtil {
+ private static final FluentLogger logger = FluentLogger.forEnclosingClass();
+
@SuppressWarnings("unchecked")
private static <T> T[] allValuesOf(T defaultValue) {
try {
@@ -138,7 +141,12 @@
} else {
for (String string : values) {
if (string != null) {
- list.add(getEnum(section, subsection, setting, string, all));
+ try {
+ list.add(getEnum(section, subsection, setting, string, all));
+ } catch (IllegalArgumentException ex) {
+ // It's better to ignore a wrongly configured enum, rather than fail to load Gerrit.
+ logger.atWarning().log(ex.getMessage());
+ }
}
}
}