Dan,   Thank you again for the quick code review.

On 7/22/15 8:57 PM, Daniel D. Daugherty wrote:
On 7/22/15 11:22 AM, Coleen Phillimore wrote:
Summary: Need to get source_file_name from the_class's constant pool not previous version constant pool

open webrev at http://cr.openjdk.java.net/~coleenp/8087315.01/

src/share/vm/classfile/javaClasses.cpp
    So in the new code, you avoid the use of holder->source_file_name()
    (where holder has been reset to a previous version ik) to fetch the
    Symbol because you can't trust that the source file name CP index
    saved in the previous version ik will work with that ik's constant
    pool. Interesting problem with previous versions...

    So you added a helper that grabs the source file name CP index out
    of the previous version ik and sanity checks it before using it
    with the merged CP.

    And you had to do this in two places so yet another reason for
    the helper...

    Sorry for verbiage... I had to remind myself how this stuff works...

Yes, you are exactly right. I'm so glad you remember this. I don't know how, but I'm glad you do. :)

test/runtime/RedefineTests/RedefineRunningMethodsWithBacktrace.java
    Nice test.

    So what does the output look like when the test is
    run without your fix? Something like what is in the
    bug report?

Yes, it crashes like the bug report. I was really happy to get a small test to reproduce this.

Thanks!
Coleen

Thumbs up.

Dan




bug link https://bugs.openjdk.java.net/browse/JDK-8087315

Tested with added test (yay!), RBT (remote build and test), vm.redefine.testlist, jdk/test/java/lang/instrument and failing testcase 1000 times (reproduced <400).

Thanks,
Coleen


Reply via email to