EP1076287A3 - Method and apparatus for performing method lookup in the presence of modularity constructs to support transitive method override - Google Patents

Method and apparatus for performing method lookup in the presence of modularity constructs to support transitive method override Download PDF

Info

Publication number
EP1076287A3
EP1076287A3 EP00306784A EP00306784A EP1076287A3 EP 1076287 A3 EP1076287 A3 EP 1076287A3 EP 00306784 A EP00306784 A EP 00306784A EP 00306784 A EP00306784 A EP 00306784A EP 1076287 A3 EP1076287 A3 EP 1076287A3
Authority
EP
European Patent Office
Prior art keywords
class
resolved
lookup
invoke
path stack
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
EP00306784A
Other languages
German (de)
French (fr)
Other versions
EP1076287B1 (en
EP1076287A2 (en
Inventor
Gilad Bracha
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle America Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of EP1076287A2 publication Critical patent/EP1076287A2/en
Publication of EP1076287A3 publication Critical patent/EP1076287A3/en
Application granted granted Critical
Publication of EP1076287B1 publication Critical patent/EP1076287B1/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution

Abstract

A method lookup mechanism is disclosed which not only enforces accessibility constraints imposed by modularity constructs but also enables transitive method override. According to one embodiment, when a method m is invoked on a target object, the resolved method m in a resolved class is checked to determine whether it has been declared as public/protected. If so, then standard method lookup may be used to determine the proper implementation of method m to invoke. However, if the resolved method is not declared as public/protected, then a path stack is constructed. The path stack provides a listing of the class hierarchy between the target object and the resolved class. Once constructed, the path stack is used to determine which implementation of method m to invoke in response to the method invocation. Specifically, the resolved method m is initially set as the candidate method to invoke. Then a downward search is performed through the classes on the path stack. At each class on the path stack, a determination is made as to whether that class: (1) provides an implementation for the method m; (2) can access the resolved method; and (3) has declared the method m as public/protected. If so, then the proper implementation for method m to be invoked may be determined using standard method lookup. However, if a class satisfies only the first two criteria, then the method m for that class is made the new candidate method, and the process loops back to test the next class on the path-stack. This loop continues until either a class is found which satisfies all three criteria, in which case standard method lookup is used to invoke the proper implementation for method m, or until all of the classes on the path stack have been tested, in which case the last detected candidate method is invoked.
EP00306784A 1999-08-13 2000-08-09 Method and apparatus for performing method lookup in the presence of modularity constructs to support transitive method override Expired - Lifetime EP1076287B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US374485 1982-05-04
US09/374,485 US6687760B1 (en) 1999-08-13 1999-08-13 Method and apparatus for preforming method lookup in the presence of modularity constructs to support transitive method override

Publications (3)

Publication Number Publication Date
EP1076287A2 EP1076287A2 (en) 2001-02-14
EP1076287A3 true EP1076287A3 (en) 2005-02-09
EP1076287B1 EP1076287B1 (en) 2013-01-16

Family

ID=23477042

Family Applications (1)

Application Number Title Priority Date Filing Date
EP00306784A Expired - Lifetime EP1076287B1 (en) 1999-08-13 2000-08-09 Method and apparatus for performing method lookup in the presence of modularity constructs to support transitive method override

Country Status (3)

Country Link
US (1) US6687760B1 (en)
EP (1) EP1076287B1 (en)
JP (1) JP2001075806A (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6912542B2 (en) * 2001-09-26 2005-06-28 Intel Corporation Method for implementing fast type checking
US7165057B2 (en) * 2001-11-29 2007-01-16 Veritas Operating Corporation Methods and systems to access storage objects
US20060059471A1 (en) * 2004-09-15 2006-03-16 Microsoft Corporation Calling non-public types
US9424010B2 (en) * 2010-08-30 2016-08-23 International Business Machines Corporation Extraction of functional semantics and isolated dataflow from imperative object oriented languages
US9021448B1 (en) * 2013-02-28 2015-04-28 Ca, Inc. Automated pattern detection in software for optimal instrumentation
US9104432B2 (en) 2013-06-24 2015-08-11 International Business Machines Corporation Extracting stream graph structure in a computer language by pre-executing a deterministic subset
JP2016014949A (en) * 2014-07-01 2016-01-28 株式会社エクサ Java development support program

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1076285A2 (en) * 1999-08-13 2001-02-14 Sun Microsystems, Inc. Method and apparatus for performing method lookup in the presence of modularity constructs to support transitive method override

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5327562A (en) 1992-05-06 1994-07-05 Microsoft Corporation Method for implementing virtual function tables in a compiler for an object-oriented programming language
US5404525A (en) 1992-09-30 1995-04-04 International Business Machines Corporation Efficient method router that supports multiple simultaneous object versions
JP2597460B2 (en) 1992-11-12 1997-04-09 インターナショナル・ビジネス・マシーンズ・コーポレイション Method and apparatus for creating and storing a composite data structure
US5632034A (en) * 1993-06-01 1997-05-20 International Business Machines Corporation Controlling method invocation sequence through virtual functions in an object-oriented class library
US5721824A (en) 1996-04-19 1998-02-24 Sun Microsystems, Inc. Multiple-package installation with package dependencies
US5913064A (en) * 1997-06-24 1999-06-15 Sun Microsystems, Inc. Method for generating instructions for an object-oriented processor
US6102966A (en) 1998-03-20 2000-08-15 Preemptive Solutions, Inc. Method for renaming identifiers of a computer program
US6526571B1 (en) * 1999-03-16 2003-02-25 International Business Machines Corporation Method for identifying calls in java packages whose targets are guaranteed to belong to the same package

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1076285A2 (en) * 1999-08-13 2001-02-14 Sun Microsystems, Inc. Method and apparatus for performing method lookup in the presence of modularity constructs to support transitive method override

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
BRIAN N. MILLER: "Re: proposed "augments" keyword", 27 March 1998 (1998-03-27), XP002303413, Retrieved from the Internet <URL:http://groups.google.com/groups?selm=351b0567.249948%40news.pcisys.net&output=gplain> [retrieved on 20041031] *
CAM@SSPL.DEMON.CO.UK: "Overriding Access Security: How?", 12 January 1999 (1999-01-12), XP002303414, Retrieved from the Internet <URL:http://groups.google.com/groups?selm=77gmac%24boe%241%40nnrp1.dejanews.com&output=gplain> [retrieved on 20041031] *
HEIKO KNAPPE, TILL S. SCHWALM: "HTML und Java", CHIP SPECIAL, VOGEL VERLAG, 1 January 1996 (1996-01-01), WÜRZBURG, XP002303358, ISBN: 3-8259-1382-1 *
JEFF MANTEI: "Default access privilege and overriding - bug in Sun's 1.0.2 JDK?", 23 January 1997 (1997-01-23), XP002303447, Retrieved from the Internet <URL:http://groups.google.com/groups?selm=1997Jan23.121749%40bbs.ug.eds.com&output=gplain> [retrieved on 20041031] *
SUN MICROSYSTEMS INC., SUN DEVELOPER NETWORK, XP002303359, Retrieved from the Internet <URL:http://onesearch.sun.com/search/developers/index.jsp?uid=6910018&qt=rationale+method+override> [retrieved on 20041030] *
SUN MICROSYSTEMS INC.: "The Java(TM) Language Specification, First Edition", 1 August 1996 (1996-08-01), XP002309268, Retrieved from the Internet <URL:ftp://ftp.javasoft.com/docs/specs/langspec-1.0.pdf> [retrieved on 20041029] *
SUN MICROSYSTEMS INC.: "The Java(TM) Language Specification, Second Edition", 1 May 2000 (2000-05-01), XP002303351, Retrieved from the Internet <URL:ftp://ftp.javasoft.com/docs/specs/langspec-2.0.pdf> [retrieved on 20041029] *
SUN MICROSYSTEMS INC.: "Why the Definition of Method Override was Revised", 22 February 2000 (2000-02-22), XP002303350, Retrieved from the Internet <URL:http://web.archive.org/web/20000817052012/http://java.sun.com/docs/books/jls/method-override-rationale.html> [retrieved on 20041029] *

Also Published As

Publication number Publication date
US6687760B1 (en) 2004-02-03
JP2001075806A (en) 2001-03-23
EP1076287B1 (en) 2013-01-16
EP1076287A2 (en) 2001-02-14

Similar Documents

Publication Publication Date Title
Venturi et al. Low frequency follow up of radio haloes and relics in the GMRT Radio Halo Cluster Survey
CN109032927A (en) A kind of bug excavation method and device
Ryder The local metallicity-surface brightness relationship in galactic disks
NO954818L (en) Method and apparatus for identifying particular materials in the composition of an article
WO2006063268A3 (en) Computer-implemented methods for detecting and/or sorting defects in a design pattern of a reticle
DE60004628D1 (en) Determination of a system model for error detection and localization, especially in computer systems
Courbon et al. Semba: A sem based acquisition technique for fast invasive hardware trojan detection
EP1076287A3 (en) Method and apparatus for performing method lookup in the presence of modularity constructs to support transitive method override
CN105988798B (en) Patch processing method and device
Horstmann et al. Inference of the cosmic rest-frame from supernovae Ia
EP1050790A3 (en) Cryptographic authorization with prioritized authentication
Silva-Villa et al. The star cluster-field star connection in nearby spiral galaxies-I. Data analysis techniques and application to NGC 4395
CN102945155B (en) A kind of for detecting (SuSE) Linux OS software kit and the method for dependence disappearance thereof
US8042003B2 (en) Method and apparatus for evaluating effectiveness of test case
CN109522235A (en) A method of it is detected for the privacy leakage of Android dynamically load
CN105718796B (en) A kind of system call level monitoring method of Android privacy of user data access
WO2007011452A3 (en) An apparatus and method for obtaining a device signal value using a ternary search process
EP1327890A3 (en) Integrated circuit defect detection system
CN103902445B (en) A kind of regression test object determines method and device
Kettl et al. The static analyzer Infer in SV-COMP (competition contribution)
CN103559127A (en) Defect processing method and defect processor
Pollock et al. Immunofluorescent patterns produced by antineutrophil cytoplasmic antibodies (ANCA) vary depending on neutrophil substrate and conjugate
CN106101086A (en) The cloud detection method of optic of program file and system, client, cloud server
Juricč et al. Performance assessment framework for distributed object architectures
Osland et al. Optimal observables for new-physics search at LEP2

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE

AX Request for extension of the european patent

Free format text: AL;LT;LV;MK;RO;SI

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: SUN MICROSYSTEMS, INC.

PUAL Search report despatched

Free format text: ORIGINAL CODE: 0009013

RIC1 Information provided on ipc code assigned before grant

Ipc: 7G 06F 9/44 A

Ipc: 7G 06F 9/42 B

AK Designated contracting states

Kind code of ref document: A3

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE

AX Request for extension of the european patent

Extension state: AL LT LV MK RO SI

17P Request for examination filed

Effective date: 20050725

AKX Designation fees paid

Designated state(s): DE GB

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: ORACLE AMERICA, INC.

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): DE GB

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: DE

Ref legal event code: R096

Ref document number: 60047791

Country of ref document: DE

Effective date: 20130314

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

26N No opposition filed

Effective date: 20131017

REG Reference to a national code

Ref country code: DE

Ref legal event code: R097

Ref document number: 60047791

Country of ref document: DE

Effective date: 20131017

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DE

Payment date: 20190730

Year of fee payment: 20

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: GB

Payment date: 20190808

Year of fee payment: 20

REG Reference to a national code

Ref country code: DE

Ref legal event code: R071

Ref document number: 60047791

Country of ref document: DE

REG Reference to a national code

Ref country code: GB

Ref legal event code: PE20

Expiry date: 20200808

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: GB

Free format text: LAPSE BECAUSE OF EXPIRATION OF PROTECTION

Effective date: 20200808