On 02/07/2018 09:41, Rafael Winterhalter wrote:
Hi,
I was wondering if a solution for this problem is still planned for
JDK 11 giving the beginning ramp down.
With removing sun.misc.Unsafe::defineClass, Java agents only have an
option to use jdk.internal.misc.Unsafe::defineClass for the use-cases
that I described.
I think it would be a missed opportunity not to offer an alternative
as of JDK 11 as a second migration would make it even less likely that
agents would avoid unsafe API.
Mandy's propoal to allow agents doing instrumentation to define
auxiliary classes in the same runtime package as the class being loaded
or redefine is a good proposal make complete sense and that fits with
the intended use of this API. Unfortunately it didn't make JDK 11.
I read the mails and arguments for an Instrumentation.defineClass but I
don't think it's the right API to add. The Instrumentation API was
designed for tool agents, not libraries, and a lot of discussion seems
to be trying to use the API for cases that it was never intended. Also
an unrestricted defineClass creates an attractive nuisance that would
likely create a lot of problems further down the road. I think it would
be better to focus on some of the use-cases to see if we can identify
cases where a standard API make sense.
-Alan