RFR: 8289613: Drop use of Thread.stop in jshell

Adam Sotona asotona at openjdk.org
Mon Sep 5 12:49:20 UTC 2022


LocalExecutionControl in jdk.jshell actually uses Thread::stop to cancel execution of (long-running or infinite loops) user code in JShell, however Thread::stop is deprecated and planned for removal.

Proposed patch instruments all user code to call LocalExecutionControl::stopCheck method before every branch instruction.
Thread::stop call is replaced by setting global field LocalExecutionControl.allStop to true and stopCheck method then throws ThreadDead when called from the instrumented code.

Proposed patch requires jdk.jshell access to java.base jdk.internal.org.objectweb.asm package. 

Please review.

Thanks,
Adam

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

Commit messages:
 - removed obsolete SuppressWarnings
 - 8289613: Drop use of Thread.stop in jshell

Changes: https://git.openjdk.org/jdk/pull/10166/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=10166&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8289613
  Stats: 54 lines in 2 files changed: 41 ins; 11 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/10166.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/10166/head:pull/10166

PR: https://git.openjdk.org/jdk/pull/10166


More information about the core-libs-dev mailing list