Fix invocation policy's handling of the null default when filtering values.

For a filter on option values (either by whitelist, allow_values, or blacklist, disallow_values), one of the options for what to do when encountering a disallowed value is to replace it with the default. This default must be itself an allowed value for this to make sense, so this is checked. This check, however, shouldn't apply to flags that are null by default, since these flags' default value is not parsed by the converter, so there is no guarantee that there exists an accepted user-input value that would also set the value to NULL. In these cases, we assume that "unset" is a distinct value that is always allowed.

RELNOTES: None.
PiperOrigin-RevId: 187475696
diff --git a/src/test/java/com/google/devtools/common/options/TestOptions.java b/src/test/java/com/google/devtools/common/options/TestOptions.java
index 2067b28..c38d975 100644
--- a/src/test/java/com/google/devtools/common/options/TestOptions.java
+++ b/src/test/java/com/google/devtools/common/options/TestOptions.java
@@ -37,6 +37,15 @@
   )
   public String testString;
 
+  @Option(
+    name = "test_string_null_by_default",
+    documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+    effectTags = {OptionEffectTag.NO_OP},
+    defaultValue = "null",
+    help = "a string-valued option that has the special string 'null' as its default."
+  )
+  public String testStringNullByDefault;
+
   /*
    * Repeated flags
    */