Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Bug Database
Bug Detail
Quick Lists
Top 25 Bugs
Top 25 RFE's
Recently Closed Bugs
Printable Page Printable Page


Bug Database
Bug ID: 4559100
Votes 0
Synopsis The VM crashes when a method in a redefined class throws an exception.
Category hotspot:jvmdi
Reported Against merlin-beta3
Release Fixed 1.4.0_02, 1.4.1(hopper) (Bug ID:2049901)
State 10-Fix Delivered, Needs Verification, bug
Priority: 4-Low
Related Bugs
Submit Date 08-DEC-2001
Description




java version "1.4.0-beta3"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-beta3-b84)
Java HotSpot(TM) Client VM (build 1.4.0-beta3-b84, mixed mode)

There are actually two problems, both in HotSwap functionality:
1) If method gus calls method fred and while fred is active, fred is redefined,
then when fred is resumed, if it throws an exception, a hotspot crash
may occur.

2) If method gus calls method fred and while fred is active, both
fred and gus are defined, then when fred is resumed and returns to gus,
a hotspot crash may occur.  This occurs only with C1 on x86 crash.


(Review ID: 136995) 
======================================================================

The fix is available from Misha Dmitriev.
Work Around




The explanation of the problems and the fixes to the VM are available from me.
======================================================================
Evaluation
See webrev.

  xxxxx@xxxxx   2002-01-30

Misha's analysis and fix:

New method exception were not saved for a non obsolete method. 
So replacing exception table will fix the exception problem.

The rewrite code uses the put_native_u2 to write the cpcahe
index but while reading get_Java_u2 is used. The get_java_u2
works fine in case of solaris but on intel it does not 
because of byte ordering problem. So using the same variant
to read and write will fix the second problem.

For consistency changed the malloc and free methods in Jvmdi
to use the malloc/free wrapper (os::malloc and os::free).
Comments
  
  Include a link with my name & email   


PLEASE NOTE: JDK6 is formerly known as Project Mustang