JDK-4096294 : Description of invokespecial instruction is not full.
  • Type: Bug
  • Component: specification
  • Sub-Component: vm
  • Affected Version: 1.1,1.2.0
  • Priority: P4
  • Status: Closed
  • Resolution: Fixed
  • OS: solaris_2.4
  • CPU: sparc
  • Submitted: 1997-12-02
  • Updated: 2012-11-05
  • Resolved: 1999-01-15
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.
1.2.0 1.2fcsFixed
Related Reports
Relates :  

Name: akC45999			Date: 12/02/97

The section 6.4 "Java Virtual Machine Instruction Set" of JVM spec reads:

Next, the Java Virtual Machine determines if all of the following conditions are true:
     The name of the method is not <init>, an instance initialization method (?3.8). 
     The method is not a private method. 
     The class of the method is a superclass of the class of the current method. 
     The ACC_SUPER flag (see Table 4.1, "Class access and modifier flags") is set for the current class. 

Then it described the cases when the method is <init> and the method is protected,
but does not describe what if 
 - the method is public or has the default (package) access scope
 - the class of the method is not a superclass of the current class
 - the ACC_SUPER flag is not set for the current class

I noticed jdk1.1 allows invokespecial to invoke a method from a class which is not
a superclas of the current class, and jdk1.2 does not. Evidently, at least one of the
implementations has an error, but I cannot file a bug report because cannot find
corresponding assertion in the JVM specification, and cannot write compatibility
tests against this case.


CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: generic FIXED IN: 1.2fcs INTEGRATED IN: 1.2fcs

PUBLIC COMMENTS The description of invokespecial does not make clear that it selects the resolved method for execution unless the 4 special conditions all hold.

EVALUATION True. gilad.bracha@eng 1997-12-11