From e67fec2e7356cd8ae99ccc318e7d65f25839ba61 Mon Sep 17 00:00:00 2001 From: Teryk Bellahsene Date: Tue, 17 Mar 2015 18:59:01 +0100 Subject: [PATCH] improve significantly memore consumption while using a disk cache it kept a strong reference to every object writter: http://stackoverflow.com/questions/7495155/java-out-of-heap-space-during-serialization/7495214#7495214 --- .../main/java/org/sonar/server/util/cache/DiskCache.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/server/sonar-server/src/main/java/org/sonar/server/util/cache/DiskCache.java b/server/sonar-server/src/main/java/org/sonar/server/util/cache/DiskCache.java index 9bc8e0b8ce8..34056e8deb2 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/util/cache/DiskCache.java +++ b/server/sonar-server/src/main/java/org/sonar/server/util/cache/DiskCache.java @@ -25,12 +25,7 @@ import org.sonar.api.utils.System2; import org.sonar.server.util.CloseableIterator; import org.sonar.server.util.ObjectInputStreamIterator; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.ObjectOutputStream; -import java.io.OutputStream; -import java.io.Serializable; +import java.io.*; /** * Serialize and deserialize objects on disk. No search capabilities, only traversal (full scan). @@ -90,6 +85,7 @@ public class DiskCache { public DiskAppender append(O object) { try { output.writeObject(object); + output.reset(); return this; } catch (IOException e) { throw new IllegalStateException("Fail to write into file " + file, e); -- 2.39.5