On Mon, 5 Apr 2021 23:28:38 GMT, David Holmes <dhol...@openjdk.org> wrote:

>> Harold Seigel has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   Undo change to ObjectSynchronizer::jni_exit()
>
> Hi Harold,
> 
> Lots of good cleanup here but also a couple of things that I think are 
> incorrect. Platform string creation can throw exceptions; and I also believe 
> the ClassFileLoadHook can too.
> 
> Thanks,
> David

Please review this latest version of this change containing reviewer suggested 
changes.

Thanks, Harold

> src/hotspot/share/classfile/javaClasses.cpp line 396:
> 
>> 394: 
>> 395: // Converts a C string to a Java String based on current encoding
>> 396: Handle java_lang_String::create_from_platform_dependent_str(JavaThread* 
>> current, const char* str) {
> 
> This change is incorrect. JNU_NewStringPlatform can raise an exception so 
> TRAPS here is correct.

Thanks for finding this.  I reverted this change and the change to 
as_platform_dependent_str() because it calls GetStringPlatformChars() which 
calls JNU_GetStringPlatformChars() which can throw an exception.

> src/hotspot/share/prims/jvmtiEnv.cpp line 709:
> 
>> 707: 
>> 708:     // need the path as java.lang.String
>> 709:     Handle path = 
>> java_lang_String::create_from_platform_dependent_str(THREAD, segment);
> 
> This change will need reverting as an exception is possible as previously 
> noted.
> 
> But note that if there was no possibility of exception here then the 
> following check of HAS_PENDING_EXCEPTION should also have been removed.

Reverted.

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

PR: https://git.openjdk.java.net/jdk/pull/3345

Reply via email to