JAL-3878 Fix NullPointerExceptions caused by nulls in arrays
[jalview.git] / src / jalview / ws / params / simple / Option.java
index 78150cd..44f9f5d 100644 (file)
@@ -148,9 +148,18 @@ public class Option implements OptionI
     required = builder.required;
     defvalue = builder.defaultValue;
     value = builder.value;
-    possibleVals = new ArrayList<>(builder.possibleValues);
-    displayVals = new ArrayList<>(
-        requireNonNullElse(builder.displayValues, possibleVals));
+    if (builder.possibleValues != null)
+      possibleVals = new ArrayList<>(builder.possibleValues);
+    if (builder.displayValues != null)
+      displayVals = new ArrayList<>(builder.displayValues);
+    else
+      displayVals = possibleVals;
+    if (possibleVals == null && displayVals != null)
+      throw new IllegalArgumentException(
+          "cannot use displayValues if possibleValues is null");
+    if (possibleVals != null && possibleVals.size() != displayVals.size())
+      throw new IllegalArgumentException(
+          "displayValues size does not match possibleValues");
     fdetails = builder.detailsUrl;
   }