<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Hi Frederik,<br>
      <br>
      <br>
      Thank you for jumping on this issue!<br>
      <br>
      <br>
      <meta http-equiv="content-type" content="text/html;
        charset=ISO-8859-1">
      <b>src/share/vm/oops/instanceKlass.cpp</b><br>
      <meta http-equiv="content-type" content="text/html;
        charset=ISO-8859-1">
      <pre><span class="new">2333   int src_index = 0;</span>
2334   while (src_index < src_length) {
2335     dest[dest_index++] = src[src_index++];
2336   }
<span class="new">2337 </span>
<span class="new">2338   // If we have a hash, append it</span>
<span class="new">2339   if(hash_len > 0) {</span>
<span class="new">2340     int hash_index = 0;</span>
<span class="new">2341     while (hash_index < hash_len) {</span>
<span class="new">2342       dest[dest_index++] = hash_buf[hash_index++];</span>
<span class="new">2343     }</span>
<span class="new">2344   }

The above can be simplified a little bit:
   // Add the actual class name
   for (int src_index = 0; src_index < src_length; ) {
     dest[dest_index++] = src[src_index++];
   }
   // If we have a hash, append it
   for (int hash_index = 0; hash_index < hash_len; ) {
     dest[dest_index++] = hash_buf[hash_index++];
   }

The condition </span><span class="new">if(hash_len > 0)</span> is covered by the loop itself.

Style-related comments:
 - <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"><span class="new">wrong indent at the lines: 2316</span>-2319
 - need a space after the 'if' at the lines: 2315, 2339


<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"><b>src/share/vm/prims/jvmtiGetLoadedClasses.cpp

</b>The copyright comment must be up-to-date.
The comments at the lines 35-38, 258-260 are not valid anymore.


> In this review I still have an outstanding unanswered question about
>     the need to synchronize the access to the:
    
<span class="new" style="color: blue; font-weight: normal;">> ClassLoaderDataGraph::classes_do(&JvmtiGetLoadedClassesClosure::increment);
<font color="#000000">> and</font>
</span><span class="new" style="color: blue; font-weight: normal;">> ClassLoaderDataGraph::classes_do(&JvmtiGetLoadedClassesClosure::add);</span>

This kind of walking is usually done at safepoint in a VM_Operation.
You will find many examples in the jvmtiEnv.cpp, for instance, VM_GetAllStackTraces.
The suggestion from Mikael is good too.
<pre></pre>
Should this fix include the getClassLoaderClasses() as well?
I'm still trying to realize the impact and consistency of this fix. :(

What tests are you going to run for verification?

Thanks,
Serguei
<b>
</b>On 9/30/13 4:45 AM, Fredrik Arvidsson wrote:
</pre>
    </div>
    <blockquote cite="mid:5249643F.3030209@oracle.com" type="cite">
      <meta http-equiv="content-type" content="text/html;
        charset=ISO-8859-1">
      Hi<br>
      <br>
      Please help me to review the changes below:<br>
      <br>
      Jira case: <a moz-do-not-send="true"
        href="https://bugs.openjdk.java.net/browse/JDK-8024423">https://bugs.openjdk.java.net/browse/JDK-8024423</a><br>
      Webrev: <a moz-do-not-send="true"
        href="http://cr.openjdk.java.net/%7Eallwin/farvidss/8024423/webrev.00/">http://cr.openjdk.java.net/~allwin/farvidss/8024423/webrev.00/</a><br>
      <br>
      In this review I still have an outstanding unanswered question
      about the need to synchronize the access to the:<br>
      <pre style="color: rgb(0, 0, 0); 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; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="new" style="color: blue; font-weight: normal;">ClassLoaderDataGraph::classes_do(&JvmtiGetLoadedClassesClosure::increment);
<font color="#000000">and</font>
</span><span class="new" style="color: blue; font-weight: normal;">ClassLoaderDataGraph::classes_do(&JvmtiGetLoadedClassesClosure::add);</span>

calls in 
<a moz-do-not-send="true" href="http://cr.openjdk.java.net/%7Eallwin/farvidss/8024423/webrev.00/src/share/vm/prims/jvmtiGetLoadedClasses.cpp.udiff.html">http://cr.openjdk.java.net/~allwin/farvidss/8024423/webrev.00/src/share/vm/prims/jvmtiGetLoadedClasses.cpp.udiff.html</a>

Please give me advise on this.

There will be a review soon regarding re-enabling the tests that failed because of the above bug, see:
<a moz-do-not-send="true" href="https://bugs.openjdk.java.net/browse/JDK-8025576">https://bugs.openjdk.java.net/browse/JDK-8025576</a>

Cheers
/Fredrik
</pre>
    </blockquote>
    <br>
  </body>
</html>