2
0
Fork 0
mirror of https://github.com/ethauvin/bld.git synced 2025-04-25 08:17:11 -07:00

Make sure previous executors are closed cleanly

This commit is contained in:
Geert Bevin 2023-09-30 19:07:53 -04:00
parent 77ceceb122
commit 3eb5795cf2
2 changed files with 50 additions and 43 deletions

View file

@ -283,17 +283,19 @@ public class TestCreateRife2Operation {
/myapp/src/test/resources""").matcher(FileUtils.generateDirectoryListing(tmp)).matches()); /myapp/src/test/resources""").matcher(FileUtils.generateDirectoryListing(tmp)).matches());
var run_operation = new RunOperation().fromProject(create_operation.project()); var run_operation = new RunOperation().fromProject(create_operation.project());
var executor = Executors.newSingleThreadScheduledExecutor(); StringBuilder check_result;
var checked_url = new URL("http://localhost:8080"); try (var executor = Executors.newSingleThreadScheduledExecutor()) {
var check_result = new StringBuilder(); var checked_url = new URL("http://localhost:8080");
executor.schedule(() -> { check_result = new StringBuilder();
try { executor.schedule(() -> {
check_result.append(FileUtils.readString(checked_url)); try {
} catch (FileUtilsErrorException e) { check_result.append(FileUtils.readString(checked_url));
throw new RuntimeException(e); } catch (FileUtilsErrorException e) {
} throw new RuntimeException(e);
}, 1, TimeUnit.SECONDS); }
executor.schedule(() -> run_operation.process().destroy(), 2, TimeUnit.SECONDS); }, 1, TimeUnit.SECONDS);
executor.schedule(() -> run_operation.process().destroy(), 2, TimeUnit.SECONDS);
}
assertThrows(ExitStatusException.class, run_operation::execute); assertThrows(ExitStatusException.class, run_operation::execute);
assertTrue(check_result.toString().contains("<p>Hello World Myapp</p>")); assertTrue(check_result.toString().contains("<p>Hello World Myapp</p>"));
@ -533,17 +535,19 @@ public class TestCreateRife2Operation {
/myapp/src/test/resources""").matcher(FileUtils.generateDirectoryListing(tmp)).matches()); /myapp/src/test/resources""").matcher(FileUtils.generateDirectoryListing(tmp)).matches());
var run_operation = new RunOperation().fromProject(create_operation.project()); var run_operation = new RunOperation().fromProject(create_operation.project());
var executor = Executors.newSingleThreadScheduledExecutor(); StringBuilder check_result;
var checked_url = new URL("http://localhost:8080"); try (var executor = Executors.newSingleThreadScheduledExecutor()) {
var check_result = new StringBuilder(); var checked_url = new URL("http://localhost:8080");
executor.schedule(() -> { check_result = new StringBuilder();
try { executor.schedule(() -> {
check_result.append(FileUtils.readString(checked_url)); try {
} catch (FileUtilsErrorException e) { check_result.append(FileUtils.readString(checked_url));
throw new RuntimeException(e); } catch (FileUtilsErrorException e) {
} throw new RuntimeException(e);
}, 1, TimeUnit.SECONDS); }
executor.schedule(() -> run_operation.process().destroy(), 2, TimeUnit.SECONDS); }, 1, TimeUnit.SECONDS);
executor.schedule(() -> run_operation.process().destroy(), 2, TimeUnit.SECONDS);
}
assertThrows(ExitStatusException.class, run_operation::execute); assertThrows(ExitStatusException.class, run_operation::execute);
assertTrue(check_result.toString().contains("<p>Hello World Myapp</p>"), check_result.toString()); assertTrue(check_result.toString().contains("<p>Hello World Myapp</p>"), check_result.toString());
@ -699,17 +703,19 @@ public class TestCreateRife2Operation {
/myapp/src/test/resources""").matcher(FileUtils.generateDirectoryListing(tmp)).matches()); /myapp/src/test/resources""").matcher(FileUtils.generateDirectoryListing(tmp)).matches());
var run_operation = new RunOperation().fromProject(create_operation.project()); var run_operation = new RunOperation().fromProject(create_operation.project());
var executor = Executors.newSingleThreadScheduledExecutor(); StringBuilder check_result;
var checked_url = new URL("http://localhost:8080"); try (var executor = Executors.newSingleThreadScheduledExecutor()) {
var check_result = new StringBuilder(); var checked_url = new URL("http://localhost:8080");
executor.schedule(() -> { check_result = new StringBuilder();
try { executor.schedule(() -> {
check_result.append(FileUtils.readString(checked_url)); try {
} catch (FileUtilsErrorException e) { check_result.append(FileUtils.readString(checked_url));
throw new RuntimeException(e); } catch (FileUtilsErrorException e) {
} throw new RuntimeException(e);
}, 1, TimeUnit.SECONDS); }
executor.schedule(() -> run_operation.process().destroy(), 2, TimeUnit.SECONDS); }, 1, TimeUnit.SECONDS);
executor.schedule(() -> run_operation.process().destroy(), 2, TimeUnit.SECONDS);
}
assertThrows(ExitStatusException.class, run_operation::execute); assertThrows(ExitStatusException.class, run_operation::execute);
assertTrue(check_result.toString().contains("<p>Hello World Myapp</p>")); assertTrue(check_result.toString().contains("<p>Hello World Myapp</p>"));

View file

@ -162,16 +162,17 @@ public class TestUberJarOperation {
var run_operation = new RunOperation() var run_operation = new RunOperation()
.javaOptions(List.of("-jar")) .javaOptions(List.of("-jar"))
.mainClass(uberjar_file.getAbsolutePath()); .mainClass(uberjar_file.getAbsolutePath());
var executor = Executors.newSingleThreadScheduledExecutor(); try (var executor = Executors.newSingleThreadScheduledExecutor()) {
var checked_url = new URL("http://localhost:8080"); var checked_url = new URL("http://localhost:8080");
executor.schedule(() -> { executor.schedule(() -> {
try { try {
check_result.append(FileUtils.readString(checked_url)); check_result.append(FileUtils.readString(checked_url));
} catch (FileUtilsErrorException e) { } catch (FileUtilsErrorException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
}, 1, TimeUnit.SECONDS); }, 1, TimeUnit.SECONDS);
executor.schedule(() -> run_operation.process().destroy(), 2, TimeUnit.SECONDS); executor.schedule(() -> run_operation.process().destroy(), 2, TimeUnit.SECONDS);
}
assertThrows(ExitStatusException.class, run_operation::execute); assertThrows(ExitStatusException.class, run_operation::execute);
assertTrue(check_result.toString().contains("<p>Hello World App</p>")); assertTrue(check_result.toString().contains("<p>Hello World App</p>"));