On Tue, 6 Sep 2022 08:42:13 GMT, Kevin Walls <kev...@openjdk.org> wrote:

>> This is an MR which partially reverts JDK-8289091 such that 
>> JavaThread::threadObj() does not call Thread::current().
>> 
>> A JVMTI operation could call threadObj() and clear the Windows GetLastError 
>> value.
>> 
>> Partial, because I haven't reverted changes in JavaThread::print_on_error(), 
>> they aren't connected to the problems seen.
>
> Kevin Walls has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Comment update

I agree with your choices in your partial [BACKOUT] of:

[JDK-8289091](https://bugs.openjdk.org/browse/JDK-8289091) move oop safety 
check from SharedRuntime::get_java_tid() to JavaThread::threadObj()

Thanks for adding the new test. I like it. 

Concerning:
>  More follow up needed about the last error reset caused by GC. 
Have you filed a follow up bug in hotspot/gc for that issue?

Thumbs up on this fix and new test.

test/jdk/com/sun/jdi/JdbLastErrorTest.java line 42:

> 40: import java.lang.foreign.SymbolLookup;
> 41: import java.lang.invoke.MethodHandle;
> 42: import java.lang.foreign.ValueLayout;

L41 and L42 should be swapped for proper alpha sort order.

test/jdk/com/sun/jdi/JdbLastErrorTest.java line 60:

> 58:             FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT));
> 59: 
> 60:         for (int i=0; i<10; i++) {

nit: should be space around '=' and '<'.

test/jdk/com/sun/jdi/JdbLastErrorTest.java line 61:

> 59: 
> 60:         for (int i=0; i<10; i++) {
> 61:             setLastError.invoke(42);

If you use final variable for the '42', then you can use the variable
here on L61 and below on L64. Then you can call is something cool:

static final int THE_ANSWER = 42;  // ... to life, the universe and everything!

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

Marked as reviewed by dcubed (Reviewer).

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

Reply via email to