On Aug 18, 2014, at 5:49 AM, Raffaello Giulietti 
<raffaello.giulie...@gmail.com> wrote:

> On 2014-08-18 14:45, Remi Forax wrote:
>> 
>> On 08/18/2014 12:19 PM, Raffaello Giulietti wrote:
>>> What happens to direct method handles to *static* methods when the
>>> underlying method implementation changes at runtime, for example by
>>> using java.lang.instrument transformations or redefinitions?
>>> 
>>> Before doing some experiments, I would just like an authoritative answer.
>> 
>> It just works* :)
>> 
> 
> You mean that the next invocation via the method handle executes the new 
> code? Fantastic!

The basic design rule is that a method handle behaves like the corresponding 
invoke* (or get* or set*) bytecode.

Since those have the behavior you describe, so do the method handles.

(Class initialization rules are also respected, for the *static and constructor 
method handles.  Caller-sensitive methods are caller-sensitive.  Etc.)

If this basic design rule is violated, it is probably a bug in the 
implementation, not in the design.

— John
_______________________________________________
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

Reply via email to