diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/counter/NodeCounterEditor.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/counter/NodeCounterEditor.java
index f92b3cb9c7..b255a5d840 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/counter/NodeCounterEditor.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/counter/NodeCounterEditor.java
@@ -111,7 +111,7 @@ public class NodeCounterEditor implements Editor {
     public void leave(NodeState before, NodeState after)
             throws CommitFailedException {
         if (NodeCounter.COUNT_HASH) {
-            leaveNew(before, after);
+            leaveNew();
             return;
         }
         leaveOld(before, after);
@@ -153,7 +153,7 @@ public class NodeCounterEditor implements Editor {
         }
     }
 
-    public void leaveNew(NodeState before, NodeState after) throws CommitFailedException {
+    private void leaveNew() throws CommitFailedException {
         if (countOffsets.isEmpty()) {
             return;
         }
diff --git a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreLuceneIndexTest.java b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreLuceneIndexTest.java
index ab68c739bf..4aa4a2bc29 100644
--- a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreLuceneIndexTest.java
+++ b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreLuceneIndexTest.java
@@ -72,6 +72,11 @@ public class CompositeNodeStoreLuceneIndexTest extends CompositeNodeStoreQueryTe
         repoV1.initCompositeRepo();
     }
 
+    @Override
+    public void closeRepositories() throws Exception {
+        repoV1.cleanup();
+    }
+
     /**
      * Steps overview -
      * Add a new index to composite repo and reindex
@@ -97,8 +102,6 @@ public class CompositeNodeStoreLuceneIndexTest extends CompositeNodeStoreQueryTe
 
         long reindexCount2 = luceneTest.getProperty(REINDEX_COUNT).getValue().getLong();
         assertEquals(reindexCount2, reindexCount + 1);
-
-        repoV1.cleanup();
     }
 
     /**
@@ -108,13 +111,12 @@ public class CompositeNodeStoreLuceneIndexTest extends CompositeNodeStoreQueryTe
     @Test
     public void addIndexInReadWriteWithIndexExistinginReadOnly() throws Exception {
         repoV1.setupIndexAndContentInRepo("luceneTest", "foo", true, VERSION_1);
-        repoV1.cleanup();
     }
 
     /**
      * Given a composite jcr repo with a lucene index with indexed data from both read only and read write parts
      * We create a V2 of this repo which will have the lucene index removed -
-     * Expected behaviour - The same query that returned resutls from both readonly
+     * Expected behaviour - The same query that returned results from both readonly
      * and readwrite in V1 should now return
      * results - but it would be a traversal query and not use the index .
      */
@@ -325,6 +327,8 @@ public class CompositeNodeStoreLuceneIndexTest extends CompositeNodeStoreQueryTe
         private Node readOnlyRoot;
         private String readOnlyMountName;
 
+        private boolean cleanedUp;
+
         public Node getReadOnlyRoot() {
             return readOnlyRoot;
         }
@@ -461,10 +465,13 @@ public class CompositeNodeStoreLuceneIndexTest extends CompositeNodeStoreQueryTe
         }
 
         private void cleanup() {
-            compositeSession.logout();
-            shutdown(compositeRepository);
-            readOnlySession.logout();
-            shutdown(readOnlyRepository);
+            if (!cleanedUp) {
+                compositeSession.logout();
+                shutdown(compositeRepository);
+                readOnlySession.logout();
+                shutdown(readOnlyRepository);
+            }
+            cleanedUp = true;
         }
 
     }
diff --git a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreQueryTestBase.java b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreQueryTestBase.java
index 0d405d2e16..9bfbd17e7c 100644
--- a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreQueryTestBase.java
+++ b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreQueryTestBase.java
@@ -412,7 +412,7 @@ public class CompositeNodeStoreQueryTestBase {
         }
     }
 
-    static enum NodeStoreKind {
+    enum NodeStoreKind {
         MEMORY {
             @Override
             public NodeStoreRegistration create(String name) {
@@ -421,7 +421,7 @@ public class CompositeNodeStoreQueryTestBase {
                     private MemoryNodeStore instance;
 
                     @Override
-                    public NodeStore get() {
+                    public NodeStore get(TemporaryFolder temporaryFolder) {
 
                         if (instance != null) {
                             throw new IllegalStateException("instance already created");
@@ -454,19 +454,18 @@ public class CompositeNodeStoreQueryTestBase {
                     private String blobStorePath;
 
                     @Override
-                    public NodeStore get() throws Exception {
+                    public NodeStore get(TemporaryFolder temporaryFolder) throws Exception {
 
                         if (instance != null) {
                             throw new IllegalStateException("instance already created");
                         }
 
-                        // TODO - don't use Unix directory separators
                         String directoryName = name != null ? "segment-" + name : "segment";
-                        storePath = new File("target/classes/" + directoryName);
+                        storePath = temporaryFolder.newFolder(directoryName);
 
                         //String blobStoreDirectoryName = name != null ? "blob-" + name : "blob";
                         String blobStoreDirectoryName = "blob" ;
-                        blobStorePath = "target/classes/" + blobStoreDirectoryName;
+                        blobStorePath = temporaryFolder.getRoot().getAbsolutePath() + blobStoreDirectoryName;
 
                         BlobStore blobStore = new FileBlobStore(blobStorePath);
 
@@ -499,9 +498,9 @@ public class CompositeNodeStoreQueryTestBase {
                     private DocumentNodeStore instance;
 
                     @Override
-                    public NodeStore get() throws Exception {
+                    public NodeStore get(TemporaryFolder temporaryFolder) throws Exception {
                         RDBOptions options = new RDBOptions().dropTablesOnClose(true);
-                        String jdbcUrl = "jdbc:h2:file:./target/classes/document";
+                        String jdbcUrl = "jdbc:h2:file:" + temporaryFolder.getRoot().getAbsolutePath() + "/document";
                         if ( name != null ) {
                             jdbcUrl += "-" + name;
                         }
@@ -536,7 +535,7 @@ public class CompositeNodeStoreQueryTestBase {
     }
 
     private interface NodeStoreRegistration {
-        NodeStore get() throws Exception;
+        NodeStore get(TemporaryFolder temporaryFolder) throws Exception;
 
         void close() throws Exception;
     }
@@ -544,7 +543,7 @@ public class CompositeNodeStoreQueryTestBase {
     protected NodeStore register(NodeStoreRegistration reg) throws Exception {
         registrations.add(reg);
 
-        return reg.get();
+        return reg.get(temporaryFolder);
     }
 
 
