JDK-4303687 : METHOD_ENTRY2: object ID is not NULL for static method
  • Type: Bug
  • Component: vm-legacy
  • Sub-Component: jvmpi
  • Affected Version: 1.3.0
  • Priority: P4
  • Status: Closed
  • Resolution: Fixed
  • OS: solaris_7
  • CPU: sparc
  • Submitted: 2000-01-10
  • Updated: 2002-08-30
  • Resolved: 2002-08-30
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other Other
1.3.1 betaFixed 1.4.0Fixed
Related Reports
Relates :  
Description

Name: dkC59003			Date: 01/10/2000



HotSpot 1.3fcs-S (solaris) fails the test nsk/jvmpi/EnableEvent/enablev006 from
testbase_nsk.
JVMPI spec states that JVMPI_EVENT_METHOD_ENTRY2 event's field obj_id 
is "the target object, NULL for static methods".
However, HotSpot 1.3fcs-S (solaris) issues JVMPI_EVENT_METHOD_ENTRY2
event corresponding to the static method that contains a value different 
from NULL in it's obj_id field.
Both classic VM and win32 HS version pass the test.

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

Log follows:

$ doit.sh /export/ld24/java/hotspot/jdk1.3.0/solaris
java version "1.3.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0-R)
Java HotSpot(TM) Client VM (build 1.3-S, interpreted mode)

For static method meth01 obj_id != NULL

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

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: ladybird FIXED IN: ladybird INTEGRATED IN: ladybird-beta merlin-beta VERIFIED IN: ladybird-rc1 merlin-rc1
14-06-2004

EVALUATION daniel.daugherty@Eng 2000-10-06 SPARC assembly logic is incorrect for initializing the receiver to NULL when the method is static and public. If the only attribute was "static", then the original likely would have worked.
11-06-2004

SUGGESTED FIX daniel.daugherty@Eng 2000-10-06 Here are the context diffs for the fix: ------- src/cpu/sparc/vm/interp_masm_sparc.cpp ------- *** /tmp/dJ_2wV_ Fri Oct 6 16:00:17 2000 --- interp_masm_sparc.cpp Fri Oct 6 15:58:43 2000 *************** *** 1553,1558 **** --- 1553,1559 ---- { Label L; const Address access_flags(Lmethod, 0, methodOopDesc::access_flags_offset_in_bytes()); ld(access_flags, temp_reg); + and3(temp_reg, JVM_ACC_STATIC, temp_reg); cmp(temp_reg, JVM_ACC_STATIC); // check if method is static br(equal, true, pn, L); // if static we're done delayed()->mov(G0, temp_reg); // receiver = NULL for a static method
11-06-2004