diff --git a/flyway-dialect/src/test/java/tech/ydb/flyway/database/YdbFlywayMigrationTest.java b/flyway-dialect/src/test/java/tech/ydb/flyway/database/YdbFlywayMigrationTest.java index 2cb1fb5..23855c7 100644 --- a/flyway-dialect/src/test/java/tech/ydb/flyway/database/YdbFlywayMigrationTest.java +++ b/flyway-dialect/src/test/java/tech/ydb/flyway/database/YdbFlywayMigrationTest.java @@ -36,24 +36,26 @@ void evolutionSchemaTest() { void evolutionConcurrencySchemaTest() throws ExecutionException, InterruptedException { int threadPoolSize = 10; - ExecutorService threadPool = Executors.newFixedThreadPool(threadPoolSize); - - for (int migrationStep = 0; migrationStep < EVOLUTION_SCHEMA_MIGRATION_DIRS.length; migrationStep++) { - List> taskFutures = new ArrayList<>(); - - for (int i = 0; i < threadPoolSize * 2; i++) { - int finalMigrationStep = migrationStep; - - taskFutures.add( - threadPool.submit(() -> assertTrue( - createFlyway("classpath:db/" + EVOLUTION_SCHEMA_MIGRATION_DIRS[finalMigrationStep]) - .load().migrate().success - )) - ); - } - - for (Future taskFuture : taskFutures) { - taskFuture.get(); + try (ExecutorService threadPool = Executors.newFixedThreadPool(threadPoolSize)) { + + for (int migrationStep = 0; migrationStep < EVOLUTION_SCHEMA_MIGRATION_DIRS.length; migrationStep++) { + List> taskFutures = new ArrayList<>(); + + for (int i = 0; i < threadPoolSize * 2; i++) { + int finalMigrationStep = migrationStep; + + taskFutures.add( + threadPool.submit(() -> assertTrue( + createFlyway("classpath:db/" + + EVOLUTION_SCHEMA_MIGRATION_DIRS[finalMigrationStep]) + .load().migrate().success + )) + ); + } + + for (Future taskFuture : taskFutures) { + taskFuture.get(); + } } } }