JDK-4327280 : some interface functions are not implemented
  • Type: Bug
  • Component: vm-legacy
  • Sub-Component: jvmdi
  • Affected Version: 1.3.0,1.3.1,1.4.0
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • OS:
    generic,solaris_2.6,windows_nt,windows_2000 generic,solaris_2.6,windows_nt,windows_2000
  • CPU: generic,x86,sparc
  • Submitted: 2000-04-03
  • Updated: 2001-12-04
  • Resolved: 2001-12-04
Related Reports
Duplicate :  
Duplicate :  
Relates :  
Relates :  
Relates :  
Relates :  
Description

Name: dkC59003			Date: 04/03/2000



The HotSpot VM 1.3rc2-Y (both win32 and Solaris) fails tests
	nsk/jvmdi/ClearFieldAccessWatch/clrfldw001
	nsk/jvmdi/ClearFieldAccessWatch/clrfldw002
	nsk/jvmdi/ClearFieldModificationWatch/clrfmodw001 
	nsk/jvmdi/ClearFieldModificationWatch/clrfmodw002 
	nsk/jvmdi/GetCurrentContendedMonitor/contmon001 
	nsk/jvmdi/GetCurrentContendedMonitor/contmon002 
	nsk/jvmdi/GetOwnedMonitorInfo/ownmoninf001
	nsk/jvmdi/GetOwnedMonitorInfo/ownmoninf002
	nsk/jvmdi/SetEventNotificationMode/setnotif001
	nsk/jvmdi/SetFieldAccessWatch/setfldw001  
	nsk/jvmdi/SetFieldAccessWatch/setfldw002  
	nsk/jvmdi/SetFieldModificationWatch/setfmodw001
	nsk/jvmdi/SetFieldModificationWatch/setfmodw002
from testbase_nsk because the following JVMDI functions return
JVMDI_ERROR_NOT_IMPLEMENTED error code:
	ClearFieldAccessWatch
	ClearFieldModificationWatch
	GetCurrentContendedMonitor
	GetOwnedMonitorInfo
	SetFieldAccessWatch
	SetFieldModificationWatch

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

Classic passes the test (doit.sh <jdk root directory> -classic).

Running on Solaris the test outputs:

$ doit.sh /export/ld24/java/hotspot/jdk1.3.0/solaris
java version "1.3.0rc2"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0rc2-Y)
Java HotSpot(TM) Client VM (build 1.3.0rc2-Y, interpreted mode)
Failed to get owned monitors. err = 99
Failed to get current contended monitor. err = 99
Failed to set field access watch. err = 99
Failed to clear field access watch. err = 99
Failed to set field access watch. err = 99
Failed to clear field access watch. err = 99

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

Name: rmT116609			Date: 08/07/2001


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


I've only recently started using an interactive debugger (BugSeeker2 from
www.karmira.com) but have found it interesting to see the different views that
different VMs provide under JPDA.

In particular, I note that HotSpot under both 1.3 and 1.4 doesn't provide
thread monitor status, which can be very useful when investigating deadlocks.
For programs that can run under 1.3, that's not *too* bad, as running under 1.3
provides the information (although then information on thrown exceptions
becomes harder to see).

Under 1.4, however, the Classic VM isn't provided, so there's no way of finding
out which thread holds a monitor for a 1.4-only program.

If JPDA is the future of debugging (and with debuggers like Karmira's I think
it probably will be) this is a great shame.
(Review ID: 129080)
======================================================================

Comments
EVALUATION daniel.daugherty@Eng 2000-07-10 This evaluation is only for six of the failing tests. For the following two tests: nsk/jvmdi/ClearFieldAccessWatch/clrfldw002 nsk/jvmdi/ClearFieldModificationWatch/clrfmodw002 an attempt to clear a watch that didn't exist was not caught. For the following two tests: nsk/jvmdi/SetFieldAccessWatch/setfldw002 nsk/jvmdi/SetFieldModificationWatch/setfmodw002 an attempt to set a duplicate watch was not caught. For the following test: nsk/jvmdi/SetFieldAccessWatch/setfldw001 field access watches for JNI interfaces are not implemented. For the following test: nsk/jvmdi/SetFieldModificationWatch/setfmodw001 field modification watches for JNI interfaces are not implemented. daniel.daugherty@Eng 2000-08-03 Committing the remainder to Ladybird. ###@###.### 2001-08-23 The remaining NOT_IMPLEMENTED APIs in Merlin beta2 are: GetOwnedMonitorInfo GetCurrentContendedMonitor GetMonitorInfo GetExceptionHandlerTable GetThrownExceptions IsMethodSynthetic
11-06-2004

PUBLIC COMMENTS .
10-06-2004

SUGGESTED FIX daniel.daugherty@Eng 2000-07-10 See attached webrev_000710 tar file for the changes that fix the following tests: nsk/jvmdi/ClearFieldAccessWatch/clrfldw002 nsk/jvmdi/ClearFieldModificationWatch/clrfmodw002 nsk/jvmdi/SetFieldAccessWatch/setfldw001 nsk/jvmdi/SetFieldAccessWatch/setfldw002 nsk/jvmdi/SetFieldModificationWatch/setfmodw001 nsk/jvmdi/SetFieldModificationWatch/setfmodw002 daniel.daugherty@Eng 2000-07-28 See attached webrev-cr.tar file for code review changes. daniel.daugherty@Eng 2000-07-31 post_event() can block so the probe methods need to refresh the oop if we were passed a jobject. See attached webrev-cr2.tar file for the changes. Thanks to John Rose.
31-07-2000