On Wed, 5 Feb 2025 14:04:18 GMT, Amit Kumar <amitku...@openjdk.org> wrote:
>> Thanks David and Johan for the reviews. > > Hi @coleenp, > > I am repeating the message from Theresa, since she is part of OpenJ9 and > can't accept OpenJDK Terms: > > > `serviceability/jvmti/RedefineClasses/RedefineVerifyError.java` I believe the > correct behavior should be throwing a ClassFormatException since the > generated class is not well formed. > > According to the JVM specification in section 4.7.3 The Code Attribute: > > If the method is either native or abstract, and is not a class or interface > initialization method, then its method_info structure must not have a Code > attribute > in its attributes table. Otherwise, its method_info structure must have > exactly > one Code attribute in its attributes table. > also > The value of code_length must be greater than zero > > Can you clarify why VerifyError is expected to be caught here? Hi Amit (@offamitkumar ), I think the answer to that is already given above: https://github.com/openjdk/jdk/pull/22116#discussion_r1850265592 > The JVMTI code for redefinition returns JVMTI_ERROR_FAILS_VERIFICATION and > not the pending exception to the caller. The agent eventually in > java.instrument/share/native/libinstrument/JavaExceptions.c will recreate the > VerifyError based on the JVMTI error code. ------------- PR Comment: https://git.openjdk.org/jdk/pull/22116#issuecomment-2638992732