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();
             }


Reply via email to