diff options
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.java | 9 |
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(); } |