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?

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