aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Liam Miller-Cushon <cushon@google.com>2016-04-28 21:45:32 +0000
committerGravatar Yun Peng <pcloudy@google.com>2016-04-29 08:09:51 +0000
commit53b67cdbd29676cc47077290fb3b45e24fca3e87 (patch)
treebd29113182a929cea762e64e67646532cb68fbaf
parentf8a94cd160322795865d22ef3af0810cdc3093a1 (diff)
Tokenize javacopts in JavaToolchainDataParser
-- MOS_MIGRATED_REVID=121059106
-rw-r--r--src/main/java/com/google/devtools/build/lib/BUILD1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainDataParser.java20
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;