On Wed, 19 Apr 2023 23:40:56 GMT, Chris Plummer <cjplum...@openjdk.org> wrote:

> Note this PR depends on the #13546 PR for the following:
> 
> [JDK-8306434](https://bugs.openjdk.org/browse/JDK-8306434): add support of 
> virtual threads to JVMTI StopThread
> 
> So it can't be finalized and push until after JDK-8306434 is pushed. There 
> will also be GHA failures until then. If JDK-8306434 results in any 
> additional spec changes, they will likely impact this CR also.
> 
> 
> [JDK-8306034](https://bugs.openjdk.org/browse/JDK-8306034) is adding some 
> virtual thread support to JVMTI StopThread. This will allow JDWP 
> ThreadReference.Stop and JDI ThreadReference.stop() to have the same level 
> support for virtual threads.
> 
> Mostly this is a spec update for JDWP and JDI, but there are also some minor 
> changes needed to the ThreadReference.stop() handling of JDWP errors, and 
> throwing the appropriate exceptions. Also some minor cleanup in jdb. The 
> debug agent doesn't need changes since JVMTI errors are just passed through 
> as the corresponding JDWP errors, and the code for this is already in place. 
> These errors are not new nor need any special handling.
> 
> Our existing testing for ThreadReference.stop() is fairly weak:
> 
> - nsk/jdb/kill/kill001, which tests stop() when the thread is suspended at a 
> breakpoint. It will get problem listed by 
> [JDK-8306034](https://bugs.openjdk.org/browse/JDK-8306034). I have fixes for 
> it already working and will push it separately.
> - nsk/jdi/stop/stop001, which is problem listed and only tests when the 
> thread is blocked in Object.wait()
> - nsk/jdi/stop/stop002, which only tests that throwing an invalid exception 
> fails properly
> 
> I decided to take stop002 and make it a more thorough test of 
> ThreadReference.stop(). See the comment at the top for a list of what is 
> tested. As for reviewing this test, it's probably best to look at it as a 
> completely new test rather than looking at diffs since so much has been 
> changed and added.

test/hotspot/jtreg/vmTestbase/nsk/jdi/ThreadReference/stop/stop002.java line 
169:

> 167:                 thrRef.stop(throwableRef);
> 168:                 log.display("TEST #2 PASSED: stop() call succeeded.");
> 169:             } catch(Exception ue) {

nit
Suggestion:

            } catch (Exception ue) {

test/hotspot/jtreg/vmTestbase/nsk/jdi/ThreadReference/stop/stop002.java line 
192:

> 190:                     log.display("TEST #3 PASSED: stop() call 
> succeeded.");
> 191:                 }
> 192:             } catch(Exception ue) {

nit
Suggestion:

            } catch (Exception ue) {

test/hotspot/jtreg/vmTestbase/nsk/jdi/ThreadReference/stop/stop002.java line 
223:

> 221:                     log.display("TEST #4 PASSED: stop() call 
> succeeded.");
> 222:                 }
> 223:             } catch(Throwable ue) {

Suggestion:

            } catch (Throwable ue) {

test/hotspot/jtreg/vmTestbase/nsk/jdi/ThreadReference/stop/stop002.java line 
255:

> 253:                     log.display("TEST #5 PASSED: stop() call for 
> suspended thread succeeded");
> 254:                 }
> 255:             } catch(Throwable ue) {

Suggestion:

            } catch (Throwable ue) {

test/hotspot/jtreg/vmTestbase/nsk/jdi/ThreadReference/stop/stop002.java line 
274:

> 272:         } finally {
> 273:             // Force the debuggee out of both loops
> 274:             if (objRef != null && stopLoop1 != null && stopLoop2 !=  
> null) {

Suggestion:

            if (objRef != null && stopLoop1 != null && stopLoop2 != null) {

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/13548#discussion_r1174633416
PR Review Comment: https://git.openjdk.org/jdk/pull/13548#discussion_r1174633435
PR Review Comment: https://git.openjdk.org/jdk/pull/13548#discussion_r1174633460
PR Review Comment: https://git.openjdk.org/jdk/pull/13548#discussion_r1174633464
PR Review Comment: https://git.openjdk.org/jdk/pull/13548#discussion_r1174633486

Reply via email to