RFR (S) 8181171: Deleting method for RedefineClasses breaks ResolvedMethodName
David Holmes
david.holmes at oracle.com
Mon Feb 25 01:04:52 UTC 2019
Hi Coleen,
On 23/02/2019 9:36 am, coleen.phillimore at oracle.com wrote:
> 8210457: JVM crash in ResolvedMethodTable::add_method(Handle)
> Summary: Add a function to call NSME in ResolvedMethodTable to replace
> deleted methods.
Given the existing code just seems to say "I don't know what to do
here", this change seems quite reasonable.
A few minor style nits in test/jdk/java/lang/instrument/NamedBuffer.java:
+ final byte FirstByte = className.getBytes()[0];
No need for final
s/First/first/
+ if(checkMatch
Space after if
Also could you add a comment on bytesForHostClass explaining exactly
what it does please. I have to keep re-reading it to figure out what is
the name of the actual classfile on disk and how it then gets
transformed. IIUC given className it replaces the first letter with
"replace" and reads that classfile from disk, and then iterates through
the bytes looking for the modified name and updating it to be
"className" (which just requires changing the first byte).
Thanks,
David
-----
> This Unsafe.throwX trick is also used for vtable initialization for
> throwing IllegalAccessError. Tested with redefinition tests in the
> repository and tier1-3, and added tests.
>
> open webrev at http://cr.openjdk.java.net/~coleenp/2019/8181171.01/webrev
> bug link https://bugs.openjdk.java.net/browse/JDK-8181171
>
> Thanks,
> Coleen
More information about the serviceability-dev
mailing list