Skip to content

Commit 5fde4b6

Browse files
author
Alex Menkov
committedSep 20, 2021
8273909: vmTestbase/nsk/jdi/Event/request/request001 can still fail with "ERROR: new event is not ThreadStartEvent"
Reviewed-by: cjplummer, sspitsyn
1 parent 04891c9 commit 5fde4b6

File tree

4 files changed

+11
-16
lines changed

4 files changed

+11
-16
lines changed
 

‎test/hotspot/jtreg/vmTestbase/nsk/jdi/Event/request/request001.java

-2
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,6 @@ private void testRun()
335335

336336
log2("......setting up ThreadStartRequest");
337337
ThreadStartRequest tsr = eventRManager.createThreadStartRequest();
338-
tsr.addCountFilter(1);
339338
tsr.setSuspendPolicy(EventRequest.SUSPEND_ALL);
340339
tsr.putProperty("number", "ThreadStartRequest");
341340
tsr.enable();
@@ -344,7 +343,6 @@ private void testRun()
344343

345344
log2("......setting up ThreadDeathRequest");
346345
ThreadDeathRequest tdr = eventRManager.createThreadDeathRequest();
347-
tdr.addCountFilter(1);
348346
tdr.setSuspendPolicy(EventRequest.SUSPEND_ALL);
349347
tsr.putProperty("number", "ThreadDeathRequest");
350348
tdr.enable();

‎test/hotspot/jtreg/vmTestbase/nsk/jdi/EventIterator/nextEvent/nextevent001.java

-2
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,6 @@ private void testRun()
324324

325325
log2("......setting up ThreadStartRequest");
326326
ThreadStartRequest tsr = eventRManager.createThreadStartRequest();
327-
tsr.addCountFilter(1);
328327
tsr.setSuspendPolicy(EventRequest.SUSPEND_ALL);
329328
tsr.putProperty("number", "ThreadStartRequest");
330329
tsr.enable();
@@ -333,7 +332,6 @@ private void testRun()
333332

334333
log2("......setting up ThreadDeathRequest");
335334
ThreadDeathRequest tdr = eventRManager.createThreadDeathRequest();
336-
tdr.addCountFilter(1);
337335
tdr.setSuspendPolicy(EventRequest.SUSPEND_ALL);
338336
tsr.putProperty("number", "ThreadDeathRequest");
339337
tdr.enable();

‎test/hotspot/jtreg/vmTestbase/nsk/jdi/ThreadDeathRequest/addThreadFilter/addthreadfilter001.java

-3
Original file line numberDiff line numberDiff line change
@@ -279,21 +279,18 @@ private void testRun()
279279
log2("......setting up ThreadDeathRequest");
280280
ThreadDeathRequest tdr1 = eventRManager.createThreadDeathRequest();
281281
// tdr1.addThreadFilter(mainThread);
282-
tdr1.addCountFilter(1);
283282
tdr1.setSuspendPolicy(EventRequest.SUSPEND_ALL);
284283
tdr1.putProperty("number", "ThreadDeathRequest1");
285284
tdr1.enable();
286285

287286
ThreadDeathRequest tdr2 = eventRManager.createThreadDeathRequest();
288287
// tsr2.addThreadFilter(mainThread);
289-
tdr2.addCountFilter(1);
290288
tdr2.setSuspendPolicy(EventRequest.SUSPEND_ALL);
291289
tdr2.putProperty("number", "ThreadDeathRequest2");
292290
tdr2.enable();
293291

294292
ThreadDeathRequest tdr3 = eventRManager.createThreadDeathRequest();
295293
tdr3.addThreadFilter(testThread);
296-
tdr3.addCountFilter(1);
297294
tdr3.setSuspendPolicy(EventRequest.SUSPEND_ALL);
298295
tdr3.putProperty("number", "ThreadDeathRequest3");
299296
tdr3.enable();

‎test/hotspot/jtreg/vmTestbase/nsk/share/jdi/JDIBase.java

+11-9
Original file line numberDiff line numberDiff line change
@@ -157,27 +157,29 @@ protected final void getEventSet() throws JDITestRuntimeException {
157157
// we can get the events from system threads unexpected for tests.
158158
// The method skips ThreadStartEvent/ThreadDeathEvent events
159159
// for all threads except the expected one.
160+
// Note: don't limit ThreadStartRequest/ThreadDeathRequest request by addCountFilter(),
161+
// as it limits the requested event to be reported at most once.
160162
protected void getEventSetForThreadStartDeath(String threadName) throws JDITestRuntimeException {
161-
boolean gotDesiredEvent = false;
162-
while (!gotDesiredEvent) {
163+
while (true) {
163164
getEventSet();
164165
Event event = eventIterator.nextEvent();
165166
if (event instanceof ThreadStartEvent evt) {
166167
if (evt.thread().name().equals(threadName)) {
167-
gotDesiredEvent = true;
168-
} else {
169-
log2("Got ThreadStartEvent for wrong thread: " + event);
168+
break;
170169
}
170+
log2("Got ThreadStartEvent for '" + evt.thread().name()
171+
+ "' instead of '" + threadName + "', skipping");
171172
} else if (event instanceof ThreadDeathEvent evt) {
172173
if (evt.thread().name().equals(threadName)) {
173-
gotDesiredEvent = true;
174-
} else {
175-
log2("Got ThreadDeathEvent for wrong thread: " + event);
174+
break;
176175
}
176+
log2("Got ThreadDeathEvent for '" + evt.thread().name()
177+
+ "' instead of '" + threadName + "', skipping");
177178
} else {
178179
// not ThreadStartEvent nor ThreadDeathEvent
179-
gotDesiredEvent = true;
180+
break;
180181
}
182+
eventSet.resume();
181183
}
182184
// reset the iterator before return
183185
eventIterator = eventSet.eventIterator();

0 commit comments

Comments
 (0)
Please sign in to comment.