aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/flags
diff options
context:
space:
mode:
authorGravatar ccalvarin <ccalvarin@google.com>2017-04-04 18:31:27 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2017-04-05 15:18:37 +0200
commit0e02f53599487ef44188cfad3c0115261d7cc993 (patch)
tree3c34828d415d5e512e432c3203f3c598a6e50d8e /src/main/java/com/google/devtools/build/lib/flags
parent9dcfa4364c349c4dbf01a555f0cb77af15e5984e (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')
-rw-r--r--src/main/java/com/google/devtools/build/lib/flags/InvocationPolicyEnforcer.java20
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 "