Uploaded image for project: 'Harmony'
  1. Harmony
  2. HARMONY-3079

[dlrvm][classloader][opt] Opt does not handle exception raised by classloader (assertion fails classloader.cpp:1521)

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • None
    • DRLVM
    • None
    • Win IA32, OPT
    • Patch Available
    • Advanced

    Description

      Assertion failed - classloader.cpp:1521 on EUT jdtdebug suit.
      Testcase:2 methods return the same type, 1-st method calls the 2-nd:
      class A;
      class B{
      static A getA(){return new A();}}
      class C{
      static A getA(){return B.getA();}}
      main: C.getA();

      JIT tries to resolve A class 2 times. If class is not accessable, classloader raises ClassNotfoundException 1-st time, JIT does not handle it, then when the 2-nd time JIT tries to resolve the same class VM fails with the assert on loading (because exception was already raised).
      The issue here is that JIT does not handle raised exception by classloader in 1 compilation session.

      Attachments

        1. test.zip
          1 kB
          Aleksey Ignatenko
        2. H3079.patch
          2 kB
          Pavel Pervov

        Issue Links

          Activity

            People

              gshimansky Gregory Shimansky
              aleksey.ignatenko@gmail.com Aleksey Ignatenko
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: