diff options
author | 2017-04-04 18:31:27 +0000 | |
---|---|---|
committer | 2017-04-05 15:18:37 +0200 | |
commit | 0e02f53599487ef44188cfad3c0115261d7cc993 (patch) | |
tree | 3c34828d415d5e512e432c3203f3c598a6e50d8e /src/main/java/com/google/devtools/build/lib/flags/InvocationPolicyEnforcer.java | |
parent | 9dcfa4364c349c4dbf01a555f0cb77af15e5984e (diff) |
Clean up clearValue and parsed option storage.
Now that policy expands itself before being applied, clearValues never has to
clear more than a single value. This makes that more clear.
OptionValueDescription had not been consistently storing the snake_case name
for an option, leading to some weird behavior when removing the map of return
values from clearValues.
PiperOrigin-RevId: 152156746
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/flags/InvocationPolicyEnforcer.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/flags/InvocationPolicyEnforcer.java | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/flags/InvocationPolicyEnforcer.java b/src/main/java/com/google/devtools/build/lib/flags/InvocationPolicyEnforcer.java index db220d94be..7e512c1b9c 100644 --- a/src/main/java/com/google/devtools/build/lib/flags/InvocationPolicyEnforcer.java +++ b/src/main/java/com/google/devtools/build/lib/flags/InvocationPolicyEnforcer.java @@ -33,8 +33,6 @@ import com.google.devtools.common.options.OptionsParsingException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import java.util.Map; -import java.util.Map.Entry; import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; @@ -394,18 +392,18 @@ public final class InvocationPolicyEnforcer { private static void applyUseDefaultOperation( OptionsParser parser, String policyType, String flagName) throws OptionsParsingException { - - Map<String, OptionValueDescription> clearedValues = parser.clearValue(flagName); - for (Entry<String, OptionValueDescription> clearedValue : clearedValues.entrySet()) { - - OptionValueDescription clearedValueDescription = clearedValue.getValue(); - String clearedFlagName = clearedValue.getKey(); + OptionValueDescription clearedValueDescription = parser.clearValue(flagName); + if (clearedValueDescription != null) { + // Log the removed value. + String clearedFlagName = clearedValueDescription.getName(); String originalValue = clearedValueDescription.getValue().toString(); String source = clearedValueDescription.getSource(); - Object clearedFlagDefaultValue = - parser.getOptionDescription(clearedFlagName).getDefaultValue(); - + OptionDescription desc = parser.getOptionDescription(clearedFlagName); + Object clearedFlagDefaultValue = null; + if (desc != null) { + clearedFlagDefaultValue = desc.getDefaultValue(); + } log.info( String.format( "Using default value '%s' for flag '%s' as " |