[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-serviceability-dev
Subject:    Re: 3-rd round RFR (S) 8008678: JSR 292: constant pool reconstitution must support pseudo strings
From:       "serguei.spitsyn () oracle ! com" <serguei ! spitsyn () oracle ! com>
Date:       2015-01-17 1:15:10
Message-ID: 54B9B79E.3060600 () oracle ! com
[Download RAW message or body]

On 1/16/15 3:32 PM, John Rose wrote:
> On Jan 16, 2015, at 3:03 PM, Coleen Phillimore 
> <coleen.phillimore@oracle.com <mailto:coleen.phillimore@oracle.com>> 
> wrote:
>>
>> I was sort of wondering about this along the same lines.  You're 
>> setting the second bit, right? :)
>
> That sounds good, much better than the string prefix hack.
>
> Parsing the string would introduce too much coupling between the JVM 
> and random details of the JDK.
>
> I also suggested to Serguei that redefinition of patched classes is 
> not going to happen, since they are not user-visible.  So all of the 
> "EMCP" logic can punt on pseudo-strings, one way or another, if it 
> needs to.
>
> BTW, since patched classes are always anonymous classes, you can't 
> even get to them, unless you dig them out some private place like a 
> lambda form.

Anonymous classes can be noticed by agents with the CL or CFLH events.
Then nothing stops agents from redefining or re-transforming anonymous 
classes.

>
> Reconstitution is also a lost cause, since the patches will be 
> dropped, but I see how that might be something you might possibly run 
> into, as a stress test or some sort of debugger display.

I've filed a new bug to track this issue as we early agreed with Coleen:
   https://bugs.openjdk.java.net/browse/JDK-8069233

Fill free to update it if necessary.


Thanks,
Serguei

>
> — John


[Attachment #3 (text/html)]

<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 1/16/15 3:32 PM, John Rose wrote:<br>
    </div>
    <blockquote
      cite="mid:82E12F9C-BE5E-4B66-B477-9F90956ECD6D@oracle.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      On Jan 16, 2015, at 3:03 PM, Coleen Phillimore &lt;<a
        moz-do-not-send="true"
        href="mailto:coleen.phillimore@oracle.com" \
class="">coleen.phillimore@oracle.com</a>&gt;  wrote:<br class="">
      <div>
        <blockquote type="cite" class=""><br
            class="Apple-interchange-newline">
          <div class=""><span style="font-family: Helvetica; font-size:
              16px; font-style: normal; font-variant: normal;
              font-weight: normal; letter-spacing: normal; line-height:
              normal; orphans: auto; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal; widows:
              auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;
              background-color: rgb(255, 255, 255); float: none;
              display: inline !important;" class="">I was sort of
              wondering about this along the same lines.   You're setting
              the second bit, right? :)</span><br style="font-family:
              Helvetica; font-size: 16px; font-style: normal;
              font-variant: normal; font-weight: normal; letter-spacing:
              normal; line-height: normal; orphans: auto; text-align:
              start; text-indent: 0px; text-transform: none;
              white-space: normal; widows: auto; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; background-color: rgb(255,
              255, 255);" class="">
          </div>
        </blockquote>
      </div>
      <br class="">
      <div class="">That sounds good, much better than the string prefix
        hack.</div>
      <div class=""><br class="">
      </div>
      <div class="">Parsing the string would introduce too much coupling
        between the JVM and random details of the JDK.</div>
      <div class=""><br class="">
      </div>
      <div class="">I also suggested to Serguei that redefinition of
        patched classes is not going to happen, since they are not
        user-visible.   So all of the "EMCP" logic can punt on
        pseudo-strings, one way or another, if it needs to.</div>
      <div class=""><br class="">
      </div>
      <div class="">BTW, since patched classes are always anonymous
        classes, you can't even get to them, unless you dig them out
        some private place like a lambda form.</div>
    </blockquote>
    <br>
    Anonymous classes can be noticed by agents with the CL or CFLH
    events.<br>
    Then nothing stops agents from redefining or re-transforming
    anonymous classes.<br>
    <br>
    <blockquote
      cite="mid:82E12F9C-BE5E-4B66-B477-9F90956ECD6D@oracle.com"
      type="cite">
      <div class=""><br class="">
      </div>
      <div class="">Reconstitution is also a lost cause, since the
        patches will be dropped, but I see how that might be something
        you might possibly run into, as a stress test or some sort of
        debugger display.</div>
    </blockquote>
    <br>
    I've filed a new bug to track this issue as we early agreed with
    Coleen:<br>
       <a class="moz-txt-link-freetext" \
href="https://bugs.openjdk.java.net/browse/JDK-8069233">https://bugs.openjdk.java.net/browse/JDK-8069233</a><br>
  <br>
    Fill free to update it if necessary.<br>
    <br>
    <br>
    Thanks,<br>
    Serguei<br>
    <br>
    <blockquote
      cite="mid:82E12F9C-BE5E-4B66-B477-9F90956ECD6D@oracle.com"
      type="cite">
      <div class=""><br class="">
      </div>
      <div class="">— John</div>
    </blockquote>
    <br>
  </body>
</html>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic