On 22/05/2013 9:18 PM, Coleen Phillimore wrote:
On 5/22/2013 3:04 AM, Staffan Larsen wrote:
On 22 maj 2013, at 06:35, David Holmes <david.hol...@oracle.com> wrote:

On 21/05/2013 11:56 PM, Coleen Phillimore wrote:
On 05/21/2013 09:29 AM, Staffan Larsen wrote:
When doing heap iteration with JVMTI, the spec requires callbacks from
the VM to the agent identifying the signers and protection domain
references. This is what tagMap does, see jvmtiTagMap.cpp:2464.

As long as it it still possible for JVMTI to find these references
(with ik->protection_domain() and ik->signers()), I think it's ok.
Okay.  Thanks for the quick answer.   I was going to rip this out
(rats,
now I can't).  I can get to both protection domain and signers through
the mirror.

We are working on moving the signers completely to the jdk and not
having the jvm know about them at all.  Then we can't find the signers
through this interface.  Should we file a CCC request to change the
JVMTI spec then?
You can access any Java object field from the JVM - you just need to
add it to java_classes.cpp :) I don't think you can just rip this out
of the JVMTI spec.
I agree with David here - changing the JVMTI spec is not the solution.

But there won't be a field in the mirror or anywhere for signers. We can
get the value from protection_domain.getCertificates() from the jdk but
the jvm doesn't currently do the upcall to java.   Why does the jvmti
spec dictate implementation?

I don't understand. AFAICS the JVMTI spec just says you have to be able to get to these things from the Class object. So if the fields are in Class then we just need to access them - no need for an upcall.

David
-----


Coleen


/Staffan


David
-----

Thanks,
Coleen

/Staffan


On 21 maj 2013, at 14:52, Coleen Phillimore
<coleen.phillim...@oracle.com> wrote:

I found during code review comment editing for my change that removes
signers and protection domain from the InstanceKlass, that JVMTI code
seems to have some sort of call back and knowledge of these fields in
instanceKlass.

          </constant>
          <constant id="JVMTI_REFERENCE_SIGNERS" num="5">
            Reference from a class to its signers array.
          </constant>
          <constant id="JVMTI_REFERENCE_PROTECTION_DOMAIN" num="6">
            Reference from a class to its protection domain.


If I remove these, will it cause incompatibilities?   It's used
during jvmtiTagMap.cpp (whatever that's doing).

Thanks,
Coleen

Reply via email to