ClDestriyose partitions when they aren't in use to avoid a file leak
diff --git a/ldif-partition/src/test/java/org/apache/directory/server/core/partition/ldif/SingleFileLdifPartitionTest.java b/ldif-partition/src/test/java/org/apache/directory/server/core/partition/ldif/SingleFileLdifPartitionTest.java
index 0ea8b0f..ace536d 100644
--- a/ldif-partition/src/test/java/org/apache/directory/server/core/partition/ldif/SingleFileLdifPartitionTest.java
+++ b/ldif-partition/src/test/java/org/apache/directory/server/core/partition/ldif/SingleFileLdifPartitionTest.java
@@ -91,6 +91,7 @@
 import org.apache.directory.server.core.api.partition.PartitionTxn;
 import org.apache.directory.server.core.shared.DefaultDnFactory;
 import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Disabled;
@@ -120,6 +121,8 @@
 
     /** the file in use during the current test method's execution */
     private File ldifFileInUse;
+    
+    private SingleFileLdifPartition partition;
 
     @TempDir
     public Path folder;
@@ -188,6 +191,14 @@
     {
         ldifFileInUse = Files.createFile( folder.resolve( "partition.ldif" ) ).toFile();
     }
+    
+    
+    @AfterEach
+    public void deleteStore() throws LdapException
+    {
+        ldifFileInUse.delete();
+        partition.destroy( partition.beginWriteTransaction() );
+    }
 
 
     private Entry createEntry( String dn ) throws Exception
@@ -257,6 +268,8 @@
 
     private SingleFileLdifPartition reloadPartition() throws Exception
     {
+        partition.destroy( partition.beginWriteTransaction() );
+
         return createPartition( ldifFileInUse.getAbsolutePath(), false );
     }
 
@@ -354,30 +367,31 @@
     @Test
     public void testAddContextEntry() throws Exception
     {
-        SingleFileLdifPartition partition = createPartition( null, true );
+        partition = createPartition( null, true );
+        
         AddOperationContext addCtx = new AddOperationContext( mockSession );
         addCtx.setEntry( contextEntry );
         addCtx.setPartition( partition );
         addCtx.setTransaction( partition.beginWriteTransaction() );
-
+    
         partition.add( addCtx );
-
+    
         String id = partition.getEntryId( partition.beginReadTransaction(), contextEntry.getDn() );
         assertNotNull( id );
-
+    
         Entry fetched = partition.fetch( partition.beginReadTransaction(), id );
-
+    
         //remove the entryDn cause it is not present in the above hand made contextEntry
         fetched.removeAttributes( SchemaConstants.ENTRY_DN_AT );
-
+    
         assertEquals( contextEntry, fetched );
-
+    
         RandomAccessFile file = new RandomAccessFile( new File( partition.getPartitionPath() ), "r" );
-
+    
         assertEquals( getEntryLdifLen( contextEntry ), file.length() );
-
+    
         file.close();
-
+    
         partition = reloadPartition();
         assertExists( partition, contextEntry );
     }
@@ -391,7 +405,7 @@
     @Test
     public void testAddEntries() throws Exception
     {
-        SingleFileLdifPartition partition = createPartition( null, true );
+        partition = createPartition( null, true );
 
         AddOperationContext addCtx = new AddOperationContext( mockSession );
         addCtx.setEntry( contextEntry );
@@ -440,7 +454,8 @@
     @Test
     public void testModifyEntry() throws Exception
     {
-        SingleFileLdifPartition partition = createPartition( null, true );
+        partition = createPartition( null, true );
+        
         AddOperationContext addCtx = new AddOperationContext( mockSession );
         addCtx.setEntry( contextEntry );
         addCtx.setPartition( partition );
@@ -594,7 +609,7 @@
     @Test
     public void testLdifAddExistingEntry() throws Exception
     {
-        SingleFileLdifPartition partition = createPartition( null, true );
+        partition = createPartition( null, true );
 
         AddOperationContext addCtx = new AddOperationContext( mockSession );
         addCtx.setEntry( contextEntry );
@@ -650,7 +665,8 @@
     @Test
     public void testLdifDeleteExistingEntry() throws Exception
     {
-        SingleFileLdifPartition partition = createPartition( null, true );
+        partition = createPartition( null, true );
+        
         AddOperationContext addCtx = new AddOperationContext( mockSession );
         addCtx.setEntry( contextEntry );
         addCtx.setPartition( partition );
@@ -730,7 +746,7 @@
     @Test
     public void testLdifSearchExistingEntry() throws Exception
     {
-        SingleFileLdifPartition partition = createPartition( null, true );
+        partition = createPartition( null, true );
 
         AddOperationContext addCtx = new AddOperationContext( mockSession );
         addCtx.setEntry( contextEntry );
@@ -808,7 +824,7 @@
     @Test
     public void testLdifMoveEntry() throws Exception
     {
-        SingleFileLdifPartition partition = injectEntries();
+        partition = injectEntries();
 
         Entry childEntry1 = partition.fetch( partition.beginReadTransaction(), 
             partition.getEntryId( partition.beginReadTransaction(), new Dn( schemaManager,
@@ -838,7 +854,7 @@
     @Test
     public void testLdifMoveSubChildEntry() throws Exception
     {
-        SingleFileLdifPartition partition = injectEntries();
+        partition = injectEntries();
 
         Entry childEntry1 = partition.fetch( partition.beginReadTransaction(), 
             partition.getEntryId( partition.beginReadTransaction(), new Dn( schemaManager,
@@ -869,7 +885,7 @@
     @Test
     public void testLdifRenameAndDeleteOldRDN() throws Exception
     {
-        SingleFileLdifPartition partition = injectEntries();
+        partition = injectEntries();
 
         Dn childDn1 = new Dn( schemaManager, "cn=child1,ou=test,ou=system" );
 
@@ -907,7 +923,7 @@
     @Test
     public void testLdifRenameAndRetainOldRDN() throws Exception
     {
-        SingleFileLdifPartition partition = injectEntries();
+        partition = injectEntries();
 
         Dn childDn1 = new Dn( schemaManager, "cn=child1,ou=test,ou=system" );
 
@@ -945,7 +961,7 @@
     @Test
     public void testLdifMoveAndRenameWithDeletingOldRDN() throws Exception
     {
-        SingleFileLdifPartition partition = injectEntries();
+        partition = injectEntries();
 
         Dn childDn1 = new Dn( schemaManager, "cn=child1,ou=test,ou=system" );
 
@@ -1020,7 +1036,7 @@
     @Test
     public void testLdifMoveAndRenameRetainingOldRDN() throws Exception
     {
-        SingleFileLdifPartition partition = injectEntries();
+        partition = injectEntries();
 
         Dn childDn1 = new Dn( schemaManager, "cn=child1,ou=test,ou=system" );
 
@@ -1094,7 +1110,7 @@
     @Test
     public void testEnableRewritingFlag() throws Exception
     {
-        SingleFileLdifPartition partition = createPartition( null, true );
+        partition = createPartition( null, true );
 
         // disable writing
         partition.setEnableRewriting( partition.beginReadTransaction(), false );
@@ -1146,7 +1162,7 @@
     @Disabled("Taking way too much time and very timing dependent")
     public void testConcurrentOperations() throws Exception
     {
-        SingleFileLdifPartition partition = injectEntries();
+        partition = injectEntries();
 
         ThreadGroup tg = new ThreadGroup( "singlefileldifpartitionTG" );