RFR(S) : 8233745 : [JVMCI] TranslatedException should serialize classloader and module info
Igor Ignatyev
igor.ignatyev at oracle.com
Sat Nov 9 18:29:20 UTC 2019
Doug, Vladimir,
thanks for your review, pushed.
-- Igor
> On Nov 8, 2019, at 2:38 PM, Doug Simon <doug.simon at oracle.com> wrote:
>
> Ok, I think the translated exceptions still convert the most important information. Looks good to me.
>
> -Doug
>
>> On 8 Nov 2019, at 20:33, Igor Ignatyev <igor.ignatyev at oracle.com> wrote:
>>
>> Hi Doug,
>>
>> I've added the difference in string representations to the bug report, for the connivence, here is the part of the diff:
>>> < at app//jdk.vm.ci.hotspot.test.TestTranslatedException.encodeDecodeTest(TestTranslatedException.java:73)
>>> < at java.base at 14-internal/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> <...>
>>> ---
>>>> at jdk.vm.ci.hotspot.test.TestTranslatedException.encodeDecodeTest(TestTranslatedException.java:73)
>>>> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>
>> as you can see there is 'app/' for classes loaded by application loader (and another '/' as in the tests are from unnamed module) and '@14-internal' for classes from system modules.
>>
>> Thanks,
>> -- Igor
>>
>>> On Nov 8, 2019, at 3:18 AM, Doug Simon <doug.simon at oracle.com> wrote:
>>>
>>> Hi Igor,
>>>
>>> To understand the bits lost in the translation as you describe below, can you please paste here or in the issue an example of before and after of a translated exception that looses info in the translation.
>>>
>>> -Doug
>>>
>>>> On 8 Nov 2019, at 00:33, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
>>>>
>>>> Good.
>>>>
>>>> Tom and Doug should look on this.
>>>>
>>>> Thanks,
>>>> Vladimir
>>>>
>>>> On 11/7/19 3:15 PM, Igor Ignatyev wrote:
>>>>> http://cr.openjdk.java.net/~iignatyev//8233745/webrev.00/index.html
>>>>>> 71 lines changed: 50 ins; 14 del; 7 mod;
>>>>> Hi all,
>>>>> could you please review the small patch which updates jdk/vm/ci/hotspot/TranslatedException to encode/decode StackTraceElement fields which were introduced in JDK9 (classloader name, module name and version fields)?
>>>>> I wasn't able to make deserialize StackTraceElement::toString to return the same string representation as original ones b/c StackTraceElement::declaringClassObject won't be set, as a result, JDK_NON_UPGRADEABLE_MODULE and BUILTIN_CLASS_LOADER bits won't be set either and StackTraceElement::toString will have classloader names even for built-it loader (won't be in original b/c dropClassLoaderName() is true) and version of system modules (won't be in original b/c dropModuleVersion() is true); so I changed how TestTranslatedException compares original and decoded exceptions.
>>>>> webrev: http://cr.openjdk.java.net/~iignatyev//8233745/webrev.00
>>>>> JBS: https://bugs.openjdk.java.net/browse/JDK-8233745
>>>>> testing: compiler/jvmci/ + graal tiers
>>>>> Thanks,
>>>>> -- Igor
>>>
>>
>
More information about the hotspot-compiler-dev
mailing list