On Dec 2, 2021, at 7:08 AM, Dan Heidinga 
<heidi...@redhat.com<mailto:heidi...@redhat.com>> wrote:

When converting back from our internal form to a classfile for the
JVMTI RetransformClasses agents, I need to either filter the interface
out if we injected it or not if it was already there.  JVMTI's
GetImplementedInterfaces call has a similar issue with being
consistent - and that's really the same issue as reflection.

There's a lot of small places that can easily become inconsistent -
and therefore a lot of places that need to be checked - to hide
injected interfaces.  The easiest solution to that is to avoid
injecting interfaces in cases where javac can do it for us so the VM
has a consistent view.

I think you may be envisioning extra complexity that isn't needed here. The 
plan of record is that we *won't* hide injected interfaces. Our hope is that 
the implicit/explicit distinction is meaningless—that turning implicit into 
explicit via JVMTI would be a 100% equivalent change. I don't know JVMTI well, 
so I'm not sure if there's some reason to think that wouldn't be acceptable...

Reply via email to