Author: chetanm
Date: Fri Mar 13 03:32:04 2015
New Revision: 1666351
URL: http://svn.apache.org/r1666351
Log:
OAK-2557 - VersionGC uses way too much memory if there is a large pile of
garbage
Closer closes the closeables (!) in LIFO manner. So ensure that directory is
cleaned in the end
Modified:
jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/sort/StringSort.java
Modified:
jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/sort/StringSort.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/sort/StringSort.java?rev=1666351&r1=1666350&r2=1666351&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/sort/StringSort.java
(original)
+++
jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/sort/StringSort.java
Fri Mar 13 03:32:04 2015
@@ -208,16 +208,17 @@ public class StringSort implements Close
public void close() throws IOException {
Closer closer = Closer.create();
try {
- closer.register(writer);
- for (CloseableIterator citr : openedIterators) {
- closer.register(citr);
- }
+ //Closing is done in LIFO manner!
closer.register(new Closeable() {
@Override
public void close() throws IOException {
FileUtils.deleteDirectory(workDir);
}
});
+ closer.register(writer);
+ for (CloseableIterator citr : openedIterators) {
+ closer.register(citr);
+ }
} finally {
closer.close();
}