RFR(XS): 8155735: use strings instead of Symbol* in JVMCI exception stubs
Christian Thalinger
christian.thalinger at oracle.com
Mon May 2 16:53:03 UTC 2016
> On May 2, 2016, at 3:46 AM, Roland Schatz <roland.schatz at oracle.com> wrote:
>
> On 04/29/2016 09:49 PM, Tom Rodriguez wrote:
>> Sorry I was looking at the comment below lookup instead of above it. It’s very odd that both of these exist though and new_symbol just forwards to lookup.
>>
>> static Symbol* new_symbol(const char* utf8_buffer, int length, TRAPS) {
>> static Symbol* lookup(const char* name, int len, TRAPS);
>>
>> I do think you want the TempNewSymbol though.
> You're right. I misunderstood the semantics of lookup/new_symbol, they actually both do the same thing.
>
> Normally, the symbol we're looking up is a class name, so the lookup should never fail anyway. But we should still not leak anything if there is a wrong string passed in.
>
> New webrev, using TempNewSymbol:
> http://cr.openjdk.java.net/~rschatz/JDK-8155735/webrev.01/
>
> I've also included an exception check after the symbol lookup, just to be sure.
Use CHECK instead of HAS_PENDING_EXCEPTION. Otherwise this looks good.
>
> - Roland
>>
>>>> and let new_exception throw an exception if the class named by symbol doesn’t exist.
>>> throw_and_post_jvmti_exception will throw a `NoClassDefFoundError` when the exception class doesn't exist.
>>>
>>>
>>> Just to be sure, I tested this using graal. Temporarily passing in a wrong class name into the stub results in:
>>>> java.lang.NoClassDefFoundError: bla/java/lang/NullPointerException
>>>> at com.oracle.graal.replacements.test.CompiledNullPointerExceptionTest.testSnippet(CompiledNullPointerExceptionTest.java:93)
>>>> at jdk.vm.ci.hotspot.CompilerToVM.executeInstalledCode(Native Method)
>>>> at jdk.vm.ci.hotspot.HotSpotNmethod.executeVarargs(HotSpotNmethod.java:100)
>>>> at com.oracle.graal.compiler.test.GraalCompilerTest.executeActual(GraalCompilerTest.java:578)
>>>> […]
>> Thanks for checking.
>>
>> tom
>>
>>>
>>> - Roland
>>>
>
More information about the hotspot-compiler-dev
mailing list