From 16bff48865a70c7206ba17ee213debe87304f380 Mon Sep 17 00:00:00 2001 From: Janak Ramakrishnan Date: Fri, 20 Mar 2015 16:11:28 +0000 Subject: Don't print out action cache if it has more than 1000 entries. This prevents IDE OOMing when a large action cache is in scope during debugging. -- MOS_MIGRATED_REVID=89127817 --- .../build/lib/actions/cache/CompactPersistentActionCache.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/main/java/com/google/devtools/build/lib/actions') diff --git a/src/main/java/com/google/devtools/build/lib/actions/cache/CompactPersistentActionCache.java b/src/main/java/com/google/devtools/build/lib/actions/cache/CompactPersistentActionCache.java index a4406d7e43..3e608cf2da 100644 --- a/src/main/java/com/google/devtools/build/lib/actions/cache/CompactPersistentActionCache.java +++ b/src/main/java/com/google/devtools/build/lib/actions/cache/CompactPersistentActionCache.java @@ -281,7 +281,10 @@ public class CompactPersistentActionCache implements ActionCache { @Override public synchronized String toString() { StringBuilder builder = new StringBuilder(); - builder.append("Action cache (" + map.size() + " records):\n"); + // map.size() - 1 to avoid counting the validation key. + builder.append("Action cache (" + (map.size() - 1) + " records):\n"); + int size = map.size() > 1000 ? 10 : map.size(); + int ct = 0; for (Map.Entry entry: map.entrySet()) { if (entry.getKey() == VALIDATION_KEY) { continue; } String content; @@ -292,6 +295,10 @@ public class CompactPersistentActionCache implements ActionCache { } builder.append("-> ").append(indexer.getStringForIndex(entry.getKey())).append("\n") .append(content).append(" packed_len = ").append(entry.getValue().length).append("\n"); + if (++ct > size) { + builder.append("..."); + break; + } } return builder.toString(); } -- cgit v1.2.3