RFR: 8355323: JShell LocalExecutionControl should add stopCheck() at method entry [v2]

Chen Liang liach at openjdk.org
Thu Apr 24 22:40:50 UTC 2025


On Thu, 24 Apr 2025 21:53:17 GMT, Archie Cobbs <acobbs at openjdk.org> wrote:

>> This PR addresses [JDK-8355323](https://bugs.openjdk.org/browse/JDK-8355323), which inserts a "stop check" at the start of each method when JShell is running in local execution mode. This augments the existing stop checks that are added at each backward branch, which, while helpful, do not guarantee the snippet thread will notice a stop request in a bounded length of time, because a snippet could be executing some recursive method(s) that have no backward branches (an example is given in the new regression test). This fix closes that loophole.
>> 
>> Side notes:
>> * The existing `StopExecutionTest` unit test was split/refactored to create an `AbstractStopExecutionTest` superclass which could be reused by the new `LocalStopExecutionTest`.
>> * There are three disabled tests in `StopExecutionTest` that seem to be working now and maybe could be re-enabled.
>
> Archie Cobbs has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Refactoring based on review.

The class file generation part looks good. Please wait for Jan for a review too.

test/langtools/jdk/jshell/AbstractStopExecutionTest.java line 2:

> 1: /*
> 2:  * Copyright (c) 2015, 2025, Oracle and/or its affiliates. All rights reserved.

I think we just need `2025,`, the beginning year of `2015` seems incorrect.

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

Marked as reviewed by liach (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/24859#pullrequestreview-2792668786
PR Review Comment: https://git.openjdk.org/jdk/pull/24859#discussion_r2059337493


More information about the kulla-dev mailing list