aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java b/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
index 56da7abe9b..c4fd52e737 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
@@ -273,7 +273,14 @@ public final class FuncallExpression extends Expression {
sb.append(obj).append(".");
}
sb.append(func);
- Printer.printList(sb, args, "(", ", ", ")", /* singletonTerminator */ null);
+ String backup = sb.toString();
+ try {
+ Printer.printList(sb, args, "(", ", ", ")", /* singletonTerminator */ null);
+ } catch (OutOfMemoryError ex) {
+ // export_files might lead to an OOM error (e.g. when deserializing very large packages).
+ // TODO(bazel-dev): make the Printer limit its own output.
+ return backup + "(<too long>)";
+ }
return sb.toString();
}