diff --git oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/DataStoreTestBase.java oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/DataStoreTestBase.java index 7e7716a..f6e0200 100644 --- oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/DataStoreTestBase.java +++ oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/DataStoreTestBase.java @@ -64,7 +64,8 @@ public class DataStoreTestBase extends TestBase { setUpServerAndClient(); } - protected FileStore setupFileDataStore(File d, String path, ScheduledExecutorService executor) throws Exception { + protected FileStore setupFileDataStore(File d, String path) throws Exception { + ScheduledExecutorService executor = newSingleThreadScheduledExecutor(); FileDataStore fds = new FileDataStore(); fds.setMinRecordLength(4092); fds.init(path); diff --git oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/ExternalPrivateStoreIT.java oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/ExternalPrivateStoreIT.java index ab614ad..8e74d3b 100644 --- oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/ExternalPrivateStoreIT.java +++ oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/ExternalPrivateStoreIT.java @@ -22,7 +22,6 @@ import static org.apache.jackrabbit.oak.segment.SegmentTestUtils.createTmpTarget import java.io.File; import java.io.IOException; -import java.util.concurrent.ScheduledExecutorService; import org.apache.commons.io.FileUtils; import org.apache.jackrabbit.oak.segment.file.FileStore; @@ -33,7 +32,7 @@ public class ExternalPrivateStoreIT extends DataStoreTestBase { private File primaryStore; private File secondaryStore; - + @After public void after() { closeServerAndClient(); @@ -45,15 +44,15 @@ public class ExternalPrivateStoreIT extends DataStoreTestBase { } @Override - protected FileStore setupPrimary(File d, ScheduledExecutorService primaryExecutor) throws Exception { + protected FileStore setupPrimary(File d) throws Exception { primaryStore = createTmpTargetDir("ExternalStoreITPrimary"); - return setupFileDataStore(d, primaryStore.getAbsolutePath(), primaryExecutor); + return setupFileDataStore(d, primaryStore.getAbsolutePath()); } @Override - protected FileStore setupSecondary(File d, ScheduledExecutorService secondaryExecutor) throws Exception { + protected FileStore setupSecondary(File d) throws Exception { secondaryStore = createTmpTargetDir("ExternalStoreITSecondary"); - return setupFileDataStore(d, secondaryStore.getAbsolutePath(), secondaryExecutor); + return setupFileDataStore(d, secondaryStore.getAbsolutePath()); } } diff --git oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/ExternalSharedStoreIT.java oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/ExternalSharedStoreIT.java index d247d2f..e6635b5 100644 --- oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/ExternalSharedStoreIT.java +++ oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/ExternalSharedStoreIT.java @@ -22,7 +22,6 @@ import static org.apache.jackrabbit.oak.segment.SegmentTestUtils.createTmpTarget import java.io.File; import java.io.IOException; -import java.util.concurrent.ScheduledExecutorService; import org.apache.commons.io.FileUtils; import org.apache.jackrabbit.oak.segment.file.FileStore; @@ -46,13 +45,13 @@ public class ExternalSharedStoreIT extends DataStoreTestBase { } @Override - protected FileStore setupPrimary(File d, ScheduledExecutorService primaryExecutor) throws Exception { + protected FileStore setupPrimary(File d) throws Exception { externalStore = createTmpTargetDir("ExternalCommonStoreIT"); - return setupFileDataStore(d, externalStore.getAbsolutePath(), primaryExecutor); + return setupFileDataStore(d, externalStore.getAbsolutePath()); } @Override - protected FileStore setupSecondary(File d, ScheduledExecutorService secondaryExecutor) throws Exception { - return setupFileDataStore(d, externalStore.getAbsolutePath(), secondaryExecutor); + protected FileStore setupSecondary(File d) throws Exception { + return setupFileDataStore(d, externalStore.getAbsolutePath()); } } diff --git oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverIPRangeTest.java oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverIPRangeTest.java index 899d88e..39fd9be 100644 --- oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverIPRangeTest.java +++ oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverIPRangeTest.java @@ -123,7 +123,6 @@ public class FailoverIPRangeTest extends TestBase { } @Test - @Ignore("OAK-4708") public void testFailoverCorrectListUseIPv6() throws Exception { if (!noDualStackSupport) { createTestWithConfig("::1", new String[]{"foobar","127-128", "0:0:0:0:0:0:0:1", "126.0.0.1", "127.0.0.0-127.255.255.255"}, true); diff --git oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/TestBase.java oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/TestBase.java index c247970..f7696ee 100644 --- oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/TestBase.java +++ oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/TestBase.java @@ -31,7 +31,6 @@ import java.util.concurrent.ScheduledExecutorService; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.SystemUtils; import org.apache.jackrabbit.oak.commons.CIHelper; -import org.apache.jackrabbit.oak.commons.concurrent.ExecutorCloser; import org.apache.jackrabbit.oak.segment.file.FileStore; import org.apache.jackrabbit.oak.segment.standby.client.StandbyClient; import org.apache.jackrabbit.oak.stats.DefaultStatisticsProvider; @@ -51,15 +50,12 @@ public class TestBase { File directoryS; FileStore storeS; - ScheduledExecutorService executorS; File directoryC; FileStore storeC; - ScheduledExecutorService executorC; File directoryC2; FileStore storeC2; - ScheduledExecutorService executorC2; /* Java 6 on Windows doesn't support dual IP stacks, so we will skip our IPv6 @@ -75,16 +71,15 @@ public class TestBase { public void setUpServerAndClient() throws Exception { // server directoryS = createTmpTargetDir(getClass().getSimpleName()+"-Server"); - executorS = Executors.newSingleThreadScheduledExecutor(); - storeS = setupPrimary(directoryS, executorS); + storeS = setupPrimary(directoryS); // client directoryC = createTmpTargetDir(getClass().getSimpleName()+"-Client"); - executorC = Executors.newSingleThreadScheduledExecutor(); - storeC = setupSecondary(directoryC, executorC); + storeC = setupSecondary(directoryC); } - private static FileStore newFileStore(File directory, ScheduledExecutorService executor) throws Exception { + private static FileStore newFileStore(File directory) throws Exception { + ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor(); return fileStoreBuilder(directory) .withMaxFileSize(1) .withMemoryMapping(false) @@ -96,16 +91,16 @@ public class TestBase { .build(); } - protected FileStore setupPrimary(File directory, ScheduledExecutorService executor) throws Exception { - return newFileStore(directory, executor); + protected FileStore setupPrimary(File directory) throws Exception { + return newFileStore(directory); } protected FileStore getPrimary() { return storeS; } - protected FileStore setupSecondary(File directory, ScheduledExecutorService executor) throws Exception { - return newFileStore(directoryC, executor); + protected FileStore setupSecondary(File directory) throws Exception { + return newFileStore(directoryC); } protected FileStore getSecondary() { @@ -116,8 +111,7 @@ public class TestBase { setUpServerAndClient(); directoryC2 = createTmpTargetDir(getClass().getSimpleName()+"-Client2"); - executorC2 = Executors.newSingleThreadScheduledExecutor(); - storeC2 = newFileStore(directoryC2, executorC2); + storeC2 = newFileStore(directoryC2); } public void closeServerAndClient() { @@ -127,10 +121,6 @@ public class TestBase { FileUtils.deleteDirectory(directoryS); FileUtils.deleteDirectory(directoryC); } catch (IOException e) { - // ignore - } finally { - new ExecutorCloser(executorS).close(); - new ExecutorCloser(executorC).close(); } } @@ -140,9 +130,6 @@ public class TestBase { try { FileUtils.deleteDirectory(directoryC2); } catch (IOException e) { - // ignore - } finally { - new ExecutorCloser(executorC2).close(); } } diff --git oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/DataStoreTestBase.java oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/DataStoreTestBase.java index f6e0200..7e7716a 100644 --- oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/DataStoreTestBase.java +++ oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/DataStoreTestBase.java @@ -64,8 +64,7 @@ public class DataStoreTestBase extends TestBase { setUpServerAndClient(); } - protected FileStore setupFileDataStore(File d, String path) throws Exception { - ScheduledExecutorService executor = newSingleThreadScheduledExecutor(); + protected FileStore setupFileDataStore(File d, String path, ScheduledExecutorService executor) throws Exception { FileDataStore fds = new FileDataStore(); fds.setMinRecordLength(4092); fds.init(path); diff --git oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/ExternalPrivateStoreIT.java oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/ExternalPrivateStoreIT.java index 8e74d3b..ab614ad 100644 --- oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/ExternalPrivateStoreIT.java +++ oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/ExternalPrivateStoreIT.java @@ -22,6 +22,7 @@ import static org.apache.jackrabbit.oak.segment.SegmentTestUtils.createTmpTarget import java.io.File; import java.io.IOException; +import java.util.concurrent.ScheduledExecutorService; import org.apache.commons.io.FileUtils; import org.apache.jackrabbit.oak.segment.file.FileStore; @@ -32,7 +33,7 @@ public class ExternalPrivateStoreIT extends DataStoreTestBase { private File primaryStore; private File secondaryStore; - + @After public void after() { closeServerAndClient(); @@ -44,15 +45,15 @@ public class ExternalPrivateStoreIT extends DataStoreTestBase { } @Override - protected FileStore setupPrimary(File d) throws Exception { + protected FileStore setupPrimary(File d, ScheduledExecutorService primaryExecutor) throws Exception { primaryStore = createTmpTargetDir("ExternalStoreITPrimary"); - return setupFileDataStore(d, primaryStore.getAbsolutePath()); + return setupFileDataStore(d, primaryStore.getAbsolutePath(), primaryExecutor); } @Override - protected FileStore setupSecondary(File d) throws Exception { + protected FileStore setupSecondary(File d, ScheduledExecutorService secondaryExecutor) throws Exception { secondaryStore = createTmpTargetDir("ExternalStoreITSecondary"); - return setupFileDataStore(d, secondaryStore.getAbsolutePath()); + return setupFileDataStore(d, secondaryStore.getAbsolutePath(), secondaryExecutor); } } diff --git oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/ExternalSharedStoreIT.java oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/ExternalSharedStoreIT.java index e6635b5..d247d2f 100644 --- oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/ExternalSharedStoreIT.java +++ oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/ExternalSharedStoreIT.java @@ -22,6 +22,7 @@ import static org.apache.jackrabbit.oak.segment.SegmentTestUtils.createTmpTarget import java.io.File; import java.io.IOException; +import java.util.concurrent.ScheduledExecutorService; import org.apache.commons.io.FileUtils; import org.apache.jackrabbit.oak.segment.file.FileStore; @@ -45,13 +46,13 @@ public class ExternalSharedStoreIT extends DataStoreTestBase { } @Override - protected FileStore setupPrimary(File d) throws Exception { + protected FileStore setupPrimary(File d, ScheduledExecutorService primaryExecutor) throws Exception { externalStore = createTmpTargetDir("ExternalCommonStoreIT"); - return setupFileDataStore(d, externalStore.getAbsolutePath()); + return setupFileDataStore(d, externalStore.getAbsolutePath(), primaryExecutor); } @Override - protected FileStore setupSecondary(File d) throws Exception { - return setupFileDataStore(d, externalStore.getAbsolutePath()); + protected FileStore setupSecondary(File d, ScheduledExecutorService secondaryExecutor) throws Exception { + return setupFileDataStore(d, externalStore.getAbsolutePath(), secondaryExecutor); } } diff --git oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverIPRangeTest.java oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverIPRangeTest.java index 39fd9be..899d88e 100644 --- oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverIPRangeTest.java +++ oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverIPRangeTest.java @@ -123,6 +123,7 @@ public class FailoverIPRangeTest extends TestBase { } @Test + @Ignore("OAK-4708") public void testFailoverCorrectListUseIPv6() throws Exception { if (!noDualStackSupport) { createTestWithConfig("::1", new String[]{"foobar","127-128", "0:0:0:0:0:0:0:1", "126.0.0.1", "127.0.0.0-127.255.255.255"}, true); diff --git oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/TestBase.java oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/TestBase.java index f7696ee..c247970 100644 --- oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/TestBase.java +++ oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/TestBase.java @@ -31,6 +31,7 @@ import java.util.concurrent.ScheduledExecutorService; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.SystemUtils; import org.apache.jackrabbit.oak.commons.CIHelper; +import org.apache.jackrabbit.oak.commons.concurrent.ExecutorCloser; import org.apache.jackrabbit.oak.segment.file.FileStore; import org.apache.jackrabbit.oak.segment.standby.client.StandbyClient; import org.apache.jackrabbit.oak.stats.DefaultStatisticsProvider; @@ -50,12 +51,15 @@ public class TestBase { File directoryS; FileStore storeS; + ScheduledExecutorService executorS; File directoryC; FileStore storeC; + ScheduledExecutorService executorC; File directoryC2; FileStore storeC2; + ScheduledExecutorService executorC2; /* Java 6 on Windows doesn't support dual IP stacks, so we will skip our IPv6 @@ -71,15 +75,16 @@ public class TestBase { public void setUpServerAndClient() throws Exception { // server directoryS = createTmpTargetDir(getClass().getSimpleName()+"-Server"); - storeS = setupPrimary(directoryS); + executorS = Executors.newSingleThreadScheduledExecutor(); + storeS = setupPrimary(directoryS, executorS); // client directoryC = createTmpTargetDir(getClass().getSimpleName()+"-Client"); - storeC = setupSecondary(directoryC); + executorC = Executors.newSingleThreadScheduledExecutor(); + storeC = setupSecondary(directoryC, executorC); } - private static FileStore newFileStore(File directory) throws Exception { - ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor(); + private static FileStore newFileStore(File directory, ScheduledExecutorService executor) throws Exception { return fileStoreBuilder(directory) .withMaxFileSize(1) .withMemoryMapping(false) @@ -91,16 +96,16 @@ public class TestBase { .build(); } - protected FileStore setupPrimary(File directory) throws Exception { - return newFileStore(directory); + protected FileStore setupPrimary(File directory, ScheduledExecutorService executor) throws Exception { + return newFileStore(directory, executor); } protected FileStore getPrimary() { return storeS; } - protected FileStore setupSecondary(File directory) throws Exception { - return newFileStore(directoryC); + protected FileStore setupSecondary(File directory, ScheduledExecutorService executor) throws Exception { + return newFileStore(directoryC, executor); } protected FileStore getSecondary() { @@ -111,7 +116,8 @@ public class TestBase { setUpServerAndClient(); directoryC2 = createTmpTargetDir(getClass().getSimpleName()+"-Client2"); - storeC2 = newFileStore(directoryC2); + executorC2 = Executors.newSingleThreadScheduledExecutor(); + storeC2 = newFileStore(directoryC2, executorC2); } public void closeServerAndClient() { @@ -121,6 +127,10 @@ public class TestBase { FileUtils.deleteDirectory(directoryS); FileUtils.deleteDirectory(directoryC); } catch (IOException e) { + // ignore + } finally { + new ExecutorCloser(executorS).close(); + new ExecutorCloser(executorC).close(); } } @@ -130,6 +140,9 @@ public class TestBase { try { FileUtils.deleteDirectory(directoryC2); } catch (IOException e) { + // ignore + } finally { + new ExecutorCloser(executorC2).close(); } } diff --git oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/DataStoreTestBase.java oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/DataStoreTestBase.java index f6e0200..7e7716a 100644 --- oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/DataStoreTestBase.java +++ oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/DataStoreTestBase.java @@ -64,8 +64,7 @@ public class DataStoreTestBase extends TestBase { setUpServerAndClient(); } - protected FileStore setupFileDataStore(File d, String path) throws Exception { - ScheduledExecutorService executor = newSingleThreadScheduledExecutor(); + protected FileStore setupFileDataStore(File d, String path, ScheduledExecutorService executor) throws Exception { FileDataStore fds = new FileDataStore(); fds.setMinRecordLength(4092); fds.init(path); diff --git oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/ExternalPrivateStoreIT.java oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/ExternalPrivateStoreIT.java index 8e74d3b..ab614ad 100644 --- oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/ExternalPrivateStoreIT.java +++ oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/ExternalPrivateStoreIT.java @@ -22,6 +22,7 @@ import static org.apache.jackrabbit.oak.segment.SegmentTestUtils.createTmpTarget import java.io.File; import java.io.IOException; +import java.util.concurrent.ScheduledExecutorService; import org.apache.commons.io.FileUtils; import org.apache.jackrabbit.oak.segment.file.FileStore; @@ -32,7 +33,7 @@ public class ExternalPrivateStoreIT extends DataStoreTestBase { private File primaryStore; private File secondaryStore; - + @After public void after() { closeServerAndClient(); @@ -44,15 +45,15 @@ public class ExternalPrivateStoreIT extends DataStoreTestBase { } @Override - protected FileStore setupPrimary(File d) throws Exception { + protected FileStore setupPrimary(File d, ScheduledExecutorService primaryExecutor) throws Exception { primaryStore = createTmpTargetDir("ExternalStoreITPrimary"); - return setupFileDataStore(d, primaryStore.getAbsolutePath()); + return setupFileDataStore(d, primaryStore.getAbsolutePath(), primaryExecutor); } @Override - protected FileStore setupSecondary(File d) throws Exception { + protected FileStore setupSecondary(File d, ScheduledExecutorService secondaryExecutor) throws Exception { secondaryStore = createTmpTargetDir("ExternalStoreITSecondary"); - return setupFileDataStore(d, secondaryStore.getAbsolutePath()); + return setupFileDataStore(d, secondaryStore.getAbsolutePath(), secondaryExecutor); } } diff --git oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/ExternalSharedStoreIT.java oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/ExternalSharedStoreIT.java index e6635b5..d247d2f 100644 --- oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/ExternalSharedStoreIT.java +++ oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/ExternalSharedStoreIT.java @@ -22,6 +22,7 @@ import static org.apache.jackrabbit.oak.segment.SegmentTestUtils.createTmpTarget import java.io.File; import java.io.IOException; +import java.util.concurrent.ScheduledExecutorService; import org.apache.commons.io.FileUtils; import org.apache.jackrabbit.oak.segment.file.FileStore; @@ -45,13 +46,13 @@ public class ExternalSharedStoreIT extends DataStoreTestBase { } @Override - protected FileStore setupPrimary(File d) throws Exception { + protected FileStore setupPrimary(File d, ScheduledExecutorService primaryExecutor) throws Exception { externalStore = createTmpTargetDir("ExternalCommonStoreIT"); - return setupFileDataStore(d, externalStore.getAbsolutePath()); + return setupFileDataStore(d, externalStore.getAbsolutePath(), primaryExecutor); } @Override - protected FileStore setupSecondary(File d) throws Exception { - return setupFileDataStore(d, externalStore.getAbsolutePath()); + protected FileStore setupSecondary(File d, ScheduledExecutorService secondaryExecutor) throws Exception { + return setupFileDataStore(d, externalStore.getAbsolutePath(), secondaryExecutor); } } diff --git oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverIPRangeTest.java oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverIPRangeTest.java index 39fd9be..70e44a2 100644 --- oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverIPRangeTest.java +++ oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverIPRangeTest.java @@ -111,6 +111,7 @@ public class FailoverIPRangeTest extends TestBase { } @Test + @Ignore("OAK-4708") public void testFailoverCorrectListIPv6() throws Exception { if (!noDualStackSupport) { createTestWithConfig(new String[]{"foobar", "122-126", "::1", "126.0.0.1", "127.0.0.0-127.255.255.255"}, true); @@ -123,6 +124,7 @@ public class FailoverIPRangeTest extends TestBase { } @Test + @Ignore("OAK-4708") public void testFailoverCorrectListUseIPv6() throws Exception { if (!noDualStackSupport) { createTestWithConfig("::1", new String[]{"foobar","127-128", "0:0:0:0:0:0:0:1", "126.0.0.1", "127.0.0.0-127.255.255.255"}, true); diff --git oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/TestBase.java oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/TestBase.java index f7696ee..c247970 100644 --- oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/TestBase.java +++ oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/TestBase.java @@ -31,6 +31,7 @@ import java.util.concurrent.ScheduledExecutorService; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.SystemUtils; import org.apache.jackrabbit.oak.commons.CIHelper; +import org.apache.jackrabbit.oak.commons.concurrent.ExecutorCloser; import org.apache.jackrabbit.oak.segment.file.FileStore; import org.apache.jackrabbit.oak.segment.standby.client.StandbyClient; import org.apache.jackrabbit.oak.stats.DefaultStatisticsProvider; @@ -50,12 +51,15 @@ public class TestBase { File directoryS; FileStore storeS; + ScheduledExecutorService executorS; File directoryC; FileStore storeC; + ScheduledExecutorService executorC; File directoryC2; FileStore storeC2; + ScheduledExecutorService executorC2; /* Java 6 on Windows doesn't support dual IP stacks, so we will skip our IPv6 @@ -71,15 +75,16 @@ public class TestBase { public void setUpServerAndClient() throws Exception { // server directoryS = createTmpTargetDir(getClass().getSimpleName()+"-Server"); - storeS = setupPrimary(directoryS); + executorS = Executors.newSingleThreadScheduledExecutor(); + storeS = setupPrimary(directoryS, executorS); // client directoryC = createTmpTargetDir(getClass().getSimpleName()+"-Client"); - storeC = setupSecondary(directoryC); + executorC = Executors.newSingleThreadScheduledExecutor(); + storeC = setupSecondary(directoryC, executorC); } - private static FileStore newFileStore(File directory) throws Exception { - ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor(); + private static FileStore newFileStore(File directory, ScheduledExecutorService executor) throws Exception { return fileStoreBuilder(directory) .withMaxFileSize(1) .withMemoryMapping(false) @@ -91,16 +96,16 @@ public class TestBase { .build(); } - protected FileStore setupPrimary(File directory) throws Exception { - return newFileStore(directory); + protected FileStore setupPrimary(File directory, ScheduledExecutorService executor) throws Exception { + return newFileStore(directory, executor); } protected FileStore getPrimary() { return storeS; } - protected FileStore setupSecondary(File directory) throws Exception { - return newFileStore(directoryC); + protected FileStore setupSecondary(File directory, ScheduledExecutorService executor) throws Exception { + return newFileStore(directoryC, executor); } protected FileStore getSecondary() { @@ -111,7 +116,8 @@ public class TestBase { setUpServerAndClient(); directoryC2 = createTmpTargetDir(getClass().getSimpleName()+"-Client2"); - storeC2 = newFileStore(directoryC2); + executorC2 = Executors.newSingleThreadScheduledExecutor(); + storeC2 = newFileStore(directoryC2, executorC2); } public void closeServerAndClient() { @@ -121,6 +127,10 @@ public class TestBase { FileUtils.deleteDirectory(directoryS); FileUtils.deleteDirectory(directoryC); } catch (IOException e) { + // ignore + } finally { + new ExecutorCloser(executorS).close(); + new ExecutorCloser(executorC).close(); } } @@ -130,6 +140,9 @@ public class TestBase { try { FileUtils.deleteDirectory(directoryC2); } catch (IOException e) { + // ignore + } finally { + new ExecutorCloser(executorC2).close(); } }