-
Bug
-
Resolution: Fixed
-
P4
-
1.4.0
-
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.
--------------------------------------------------------------------------
======================================================================