Fix java_stub_template.txt when parsing runfiles with spaces in path.
Print the rest of the line instead of only the second column separated by spaces.
Fix https://github.com/bazelbuild/bazel/issues/3807
RELNOTES: None
PiperOrigin-RevId: 170030984
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/java_stub_template.txt b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/java_stub_template.txt
index 856615e..dbe84b4 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/java_stub_template.txt
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/java_stub_template.txt
@@ -199,7 +199,7 @@
for line in "${my_array[@]}"
do
line_split=($line)
- runfiles_array[${line_split[0]}]=${line_split[1]}
+ runfiles_array[${line_split[0]}]=${line_split[@]:1}
done
fi
@@ -208,7 +208,10 @@
echo $1
else
if is_macos; then
- echo $(grep "^$1 " $RUNFILES_MANIFEST_FILE | awk '{ print $2 }')
+ # Print the rest of line after the first space
+ # First, set the first column to empty and print rest of the line
+ # Second, use a trick of awk to remove leading and trailing spaces.
+ echo $(grep "^$1 " $RUNFILES_MANIFEST_FILE | awk '{ $1=""; print }' | awk '{ $1=$1; print }')
else
echo ${runfiles_array[$1]}
fi