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

JVMDI: RedefineClasses() wrongly reports JVMDI_ERROR_FAILS_VERIFICATION

XMLWordPrintable

    • beta
    • generic
    • generic
    • Verified



      Name: egR10015 Date: 01/22/2001



      HotSpot 1.4.0beta-b47 fails to pass the test

      nsk/jvmdi/RedefineClasses/redefclass007

      from testbase_nsk on all platforms. The JVMDI function RedefineClasses()
      reports wrongly diagnostics JVMDI_ERROR_FAILS_VERIFICATION instead of
      the error JVMDI_ERROR_NAMES_DONT_MATCH.

      All sources files of the test are available in
      /net/sqesvr/export/vsn/GammaBase/Bugs/<this bug number>.

      The main test program (see file redefclass007.java) creates an instance
      of tested class redefclass007r from the classfile locating at ./oldclass
      directory. Then the test tries to redifine the class redefclass005r
      by calling the native function makeRedefinition().
      Bytes defining new version of the class redefclass005r are taken from
      the class file ./newclass/redefclass007n.class (see source file
      ./newclass/redefclass007n.java), i.e. new class version has
      name redefclass007n which is different from the old name redefclass007r.
      So, it is expected that the JVMDI function RedefineClasses() will return
      the error JVMDI_ERROR_NAMES_DONT_MATCH:
      the class name defined in the new class file is different from the name
      in the old class object.
      But actually the JVMDI function RedefineClasses() fails with the error
      JVMDI_ERROR_FAILS_VERIFICATION:
      the class bytes of new class version fail verification.

      To reproduce the bug run
      doit.ksh <jdk root directory>
      in
      /net/sqesvr/export/vsn/GammaBase/Bugs/<this bug number>

      -------------------------- output on Solaris ----------------------------
      java version "1.4.0-beta"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-beta-b47)
      Java HotSpot(TM) Client VM (build 1.4beta-B47, mixed mode)
      redefclass007r: inside the checkIt()
      Successfully check the class redefclass007r
      Trying to redefine a class from the file:
      /export/ld24/java/eug/evaluation/GammaBase/bugdir/newclass/redefclass007n.class
      >>>>>>>> Invoke RedefineClasses():
              new class byte count=410
      TEST FAILED: the function RedefineClasses() returned error 62: JVMDI_ERROR_FAILS_VERIFICATION
              But it should return the error JVMDI_ERROR_NAMES_DONT_MATCH.
      redefclass007r: inside the checkIt()
      Check #2 PASSED:
              the class redefclass007r was not redefined.
      --------------------------------------------------------------------------

      ======================================================================

            busersunw Btplusnull User (Inactive)
            eugsunw Eug Eug (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: