Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8174199

ci replay doesn't reallocate static final field of recorded klass

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P5
    • Resolution: Fixed
    • Affects Version/s: 9, 10
    • Fix Version/s: 10
    • Component/s: hotspot
    • Labels:
    • Subcomponent:
    • Resolved In Build:
      b21

      Description

      diff --git a/src/share/vm/ci/ciReplay.cpp b/src/share/vm/ci/ciReplay.cpp
      --- a/src/share/vm/ci/ciReplay.cpp
      +++ b/src/share/vm/ci/ciReplay.cpp
      @@ -840,9 +840,8 @@
               Handle value = java_lang_String::create_from_str(string_value, CHECK);
               java_mirror->obj_field_put(fd.offset(), value());
             } else if (field_signature[0] == 'L') {
      - Symbol* klass_name = SymbolTable::lookup(field_signature, (int)strlen(field_signature), CHECK);
      - KlassHandle kelem = resolve_klass(field_signature, CHECK);
      - oop value = InstanceKlass::cast(kelem())->allocate_instance(CHECK);
      + KlassHandle k = resolve_klass(string_value, CHECK);
      + oop value = InstanceKlass::cast(k())->allocate_instance(CHECK);
               java_mirror->obj_field_put(fd.offset(), value);
             } else {
               report_error("unhandled staticfield");

        Attachments

          Activity

            People

            • Assignee:
              roland Roland Westrelin
              Reporter:
              roland Roland Westrelin
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: