On Thu, 17 Dec 2020 05:27:28 GMT, Chris Plummer <[email protected]> wrote:
>> The error code during class redefinition might be not enough to easily
>> diagnose the problem. Some more logging might be useful to understand it. I
>> encountered this problem when redefined methods with lambda usage.
>> I run all existing tests with enabled logging and sanity verified error
>> messages.
>
> src/hotspot/share/prims/jvmtiRedefineClasses.cpp line 1003:
>
>> 1001: ("redefined class %s modifiers change error: modifiers changed
>> from %d to %d.",
>> 1002: the_class->external_name(), old_flags, new_flags);
>> 1003: return
>> JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_MODIFIERS_CHANGED;
>
> You've changed the ordering of the checks. I'm not sure why.
I changed the order to report about different names first if any of the
variables are added/deleted. And report about different modifiers/offsets only
if the names of variables are the same.
The result should be the same because
JVMTI_ERROR_UNSUPPORTED_REDEFINITION_SCHEMA_CHANGED is returned anyway.
-------------
PR: https://git.openjdk.java.net/jdk/pull/1811