test/jdk/jdk/jfr/api/consumer/streaming/TestOutOfProcessMigration.java
changeset 59246 fcad92f425c5
parent 59226 a0f39cc47387
--- a/test/jdk/jdk/jfr/api/consumer/streaming/TestOutOfProcessMigration.java	Mon Nov 25 12:34:43 2019 +0100
+++ b/test/jdk/jdk/jfr/api/consumer/streaming/TestOutOfProcessMigration.java	Mon Nov 25 14:06:13 2019 +0100
@@ -33,7 +33,6 @@
 import jdk.jfr.consumer.EventStream;
 import jdk.test.lib.dcmd.CommandExecutor;
 import jdk.test.lib.dcmd.PidJcmdExecutor;
-import jdk.test.lib.process.OutputAnalyzer;
 
 /**
  * @test
@@ -47,23 +46,25 @@
  */
 public class TestOutOfProcessMigration {
     public static void main(String... args) throws Exception {
-        Path newRepo = Paths.get("new-repository").toAbsolutePath();
-
-        TestProcess process = new TestProcess("application");
-        AtomicInteger eventCounter = new AtomicInteger();
-        try (EventStream es = EventStream.openRepository(process.getRepository())) {
-            // Start from first event in repository
-            es.setStartTime(Instant.EPOCH);
-            es.onEvent(e -> {
-                if (eventCounter.incrementAndGet() == TestProcess.NUMBER_OF_EVENTS) {
-                    System.out.println("Changing repository to " + newRepo + " ...");
-                    CommandExecutor executor = new PidJcmdExecutor(String.valueOf(process.pid()));
-                    // This should close stream
-                    OutputAnalyzer oa = executor.execute("JFR.configure repositorypath=" + newRepo);
-                    System.out.println(oa);
-                }
-            });
-            es.start();
+        try (TestProcess process = new TestProcess("application"))  {
+            AtomicInteger eventCounter = new AtomicInteger();
+            Path newRepo = Paths.get("new-repository").toAbsolutePath();
+            try (EventStream es = EventStream.openRepository(process.getRepository())) {
+                // Start from first event in repository
+                es.setStartTime(Instant.EPOCH);
+                es.onEvent(e -> {
+                    if (eventCounter.incrementAndGet() == TestProcess.NUMBER_OF_EVENTS) {
+                        System.out.println("Changing repository to " + newRepo + " ...");
+                        CommandExecutor executor = new PidJcmdExecutor(String.valueOf(process.pid()));
+                        // This should close stream
+                        executor.execute("JFR.configure repositorypath=" + newRepo);
+                    }
+                });
+                es.start();
+                process.exit();
+                // Wait for process to die, so files are cleaned up
+                process.awaitDeath();
+            }
         }
     }
 }