diff options
author | 2016-04-28 21:45:32 +0000 | |
---|---|---|
committer | 2016-04-29 08:09:51 +0000 | |
commit | 53b67cdbd29676cc47077290fb3b45e24fca3e87 (patch) | |
tree | bd29113182a929cea762e64e67646532cb68fbaf | |
parent | f8a94cd160322795865d22ef3af0810cdc3093a1 (diff) |
Tokenize javacopts in JavaToolchainDataParser
--
MOS_MIGRATED_REVID=121059106
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/BUILD | 1 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainDataParser.java | 20 |
2 files changed, 19 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/BUILD b/src/main/java/com/google/devtools/build/lib/BUILD index ffb3ff33ef..0faafca8da 100644 --- a/src/main/java/com/google/devtools/build/lib/BUILD +++ b/src/main/java/com/google/devtools/build/lib/BUILD @@ -431,6 +431,7 @@ java_library( deps = [ ":concurrent", ":preconditions", + ":shell", "//src/main/protobuf:build_java_proto", "//third_party:guava", "//third_party:jsr305", diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainDataParser.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainDataParser.java index 84694a6af6..1091dc0d6d 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainDataParser.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainDataParser.java @@ -18,11 +18,14 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.devtools.build.lib.query2.proto.proto2api.Build; import com.google.devtools.build.lib.query2.proto.proto2api.Build.QueryResult; +import com.google.devtools.build.lib.shell.ShellUtils; import com.google.protobuf.TextFormat; import com.google.protobuf.TextFormat.ParseException; import java.io.IOException; import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; /** * A class to parse a {@link JavaToolchainData} from the result of blaze query. It is used by @@ -99,8 +102,21 @@ public class JavaToolchainDataParser { xlint = ImmutableList.copyOf(attribute.getStringListValueList()); break; case "misc": - misc = ImmutableList.copyOf(attribute.getStringListValueList()); - break; + { + List<String> options = new ArrayList<>(); + for (String option : attribute.getStringListValueList()) { + try { + ShellUtils.tokenize(options, option); + } catch (ShellUtils.TokenizationException e) { + // Tokenization failed; this likely means that the user + // did not want tokenization to happen on the argument. + // (see JavaHelper.tokenizeJavaOptions) + options.add(option); + } + } + misc = ImmutableList.copyOf(options); + break; + } case "jvm_opts": jvmOpts = ImmutableList.copyOf(attribute.getStringListValueList()); break; |