--- a/test/jdk/jdk/jfr/api/consumer/recordingstream/TestOnEvent.java Fri Nov 29 15:37:13 2019 +0000
+++ b/test/jdk/jdk/jfr/api/consumer/recordingstream/TestOnEvent.java Fri Nov 29 17:31:01 2019 +0100
@@ -36,7 +36,7 @@
* @summary Tests RecordingStream::onEvent(...)
* @key jfr
* @requires vm.hasJFR
- * @library /test/lib
+ * @library /test/lib /test/jdk
* @run main/othervm jdk.jfr.api.consumer.recordingstream.TestOnEvent
*/
public class TestOnEvent {
@@ -58,6 +58,7 @@
testOnEvent();
testNamedEvent();
testTwoEventWithSameName();
+ testOnEventAfterStart();
}
private static void testOnEventNull() {
@@ -149,6 +150,29 @@
log("Leaving testOnEvent()");
}
+ private static void testOnEventAfterStart() {
+ try (RecordingStream r = new RecordingStream()) {
+ EventProducer p = new EventProducer();
+ p.start();
+ Thread addHandler = new Thread(() -> {
+ r.onEvent(e -> {
+ // Got event, close stream
+ r.close();
+ });
+ });
+ r.onFlush(() -> {
+ // Only add handler once
+ if (!"started".equals(addHandler.getName())) {
+ addHandler.setName("started");
+ addHandler.start();
+ }
+ });
+ r.start();
+ p.kill();
+ }
+ }
+
+
private static void log(String msg) {
System.out.println(msg);
}