You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by re...@apache.org on 2019/12/02 15:13:40 UTC

svn commit: r1870709 - in /jackrabbit/oak/branches/1.6: ./ oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/MapDBMapFactory.java oak-run/src/main/java/org/apache/jackrabbit/oak/run/RecoveryCommand.java

Author: reschke
Date: Mon Dec  2 15:13:40 2019
New Revision: 1870709

URL: http://svn.apache.org/viewvc?rev=1870709&view=rev
Log:
OAK-8624: oak-run: tests leak mapd temp files (merged t1867061 into 1.6)

Modified:
    jackrabbit/oak/branches/1.6/   (props changed)
    jackrabbit/oak/branches/1.6/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/MapDBMapFactory.java
    jackrabbit/oak/branches/1.6/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RecoveryCommand.java

Propchange: jackrabbit/oak/branches/1.6/
------------------------------------------------------------------------------
  Merged /jackrabbit/oak/trunk:r1867061

Modified: jackrabbit/oak/branches/1.6/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/MapDBMapFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/MapDBMapFactory.java?rev=1870709&r1=1870708&r2=1870709&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.6/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/MapDBMapFactory.java (original)
+++ jackrabbit/oak/branches/1.6/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/MapDBMapFactory.java Mon Dec  2 15:13:40 2019
@@ -16,6 +16,7 @@
  */
 package org.apache.jackrabbit.oak.plugins.document.util;
 
+import java.io.Closeable;
 import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
@@ -31,7 +32,7 @@ import org.mapdb.Serializer;
 /**
  * A MapFactory backed by MapDB, which stores the map in a temporary file.
  */
-public class MapDBMapFactory extends MapFactory {
+public class MapDBMapFactory extends MapFactory implements Closeable {
 
     private final AtomicInteger counter = new AtomicInteger();
     private final DB db;
@@ -53,6 +54,11 @@ public class MapDBMapFactory extends Map
                 .makeStringMap();
     }
 
+    @Override
+    public void close() throws IOException {
+        this.db.close();
+    }
+
     private static class RevisionSerializer implements Serializer<Revision>,
             Serializable {
         private static final long serialVersionUID = 8648365575103098316L;

Modified: jackrabbit/oak/branches/1.6/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RecoveryCommand.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RecoveryCommand.java?rev=1870709&r1=1870708&r2=1870709&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.6/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RecoveryCommand.java (original)
+++ jackrabbit/oak/branches/1.6/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RecoveryCommand.java Mon Dec  2 15:13:40 2019
@@ -32,10 +32,13 @@ import org.apache.jackrabbit.oak.spi.sta
 
 class RecoveryCommand implements Command {
 
+    MapFactory oldf = MapFactory.getInstance();
+
     @Override
     public void execute(String... args) throws Exception {
-        MapFactory.setInstance(new MapDBMapFactory());
         Closer closer = Closer.create();
+        MapDBMapFactory mdbmf = new MapDBMapFactory();
+        closer.register(mdbmf);
         String h = "recovery mongodb://host:port/database { dryRun }";
         try {
             NodeStore store = Utils.bootstrapNodeStore(args, closer, h);
@@ -60,6 +63,7 @@ class RecoveryCommand implements Command
             throw closer.rethrow(e);
         } finally {
             closer.close();
+            MapFactory.setInstance(oldf);
         }
     }