US2010318978A1PendingUtilityA1

Registration method for supporting bytecode modification

44
Assignee: NIKOLOV NIKOLAI GPriority: Dec 30, 2003Filed: Jun 18, 2010Published: Dec 16, 2010
Est. expiryDec 30, 2023(expired)· nominal 20-yr term from priority
G06F 9/449
44
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A method is described that comprises receiving from a classfile registration information. The registration information comprises a class name and a different method name for each of the class's methods. Each of the methods are modified with at least one additional byte code instruction to cause, for its respective method, a plug-in module's handler method to provide output function treatment for the respective method. Also, a plug-in pattern is referred to in order to determine which of a plurality of plug-in modules are appropriate for each of the class's methods. The plug-in pattern lists for each of the plug-in modules those of the methods that are to be handled with its corresponding output function treatment.

Claims

exact text as granted — not AI-modified
1 . A method, comprising:
 a) modifying a first method's bytecode instructions, before said method's classfile has begun to be loaded for processing during runtime, by:
 inserting first additional bytecode instructions in a location that is executed if an entry point of said first method is reached during execution of said first method; 
 inserting second additional bytecode instructions in a location that is executed if a specific exit point of said first method is reached during execution of said first method; and, 
   performing the following during runtime:   b) executing said first method's modified bytecode instructions to perform the following:
 invoking a second method with said first additional bytecode instructions, said second method belonging to a class that maintains a dictionary, said dictionary having a listing that correlates said first method to a plug-in module, said invoking including passing said first method's class name, method name, and argument types to said second method; 
   c) invoking said plug-in module, said plug-in module having a third method and executing said third method to provide a first output for said first method;   d) invoking said second method with said second additional bytecode instructions; and   e) invoking said plug-in module and executing said third method to provide a second output for said first method.   
     
     
         2 . The method of  claim 1  wherein said first output is an entry time for said first method. 
     
     
         3 . The method of  claim 1  wherein said second output is an exit time for said first method. 
     
     
         4 . The method of  claim 1  wherein said first output is a counter value maintained for said first method. 
     
     
         5 . The method of  claim 1  wherein said first output is an input parameter value of said first method. 
     
     
         6 . The method of  claim 1  wherein said second output is a returned value of said first method. 
     
     
         7 . The method of  claim 1  wherein said first method is a constructor method. 
     
     
         8 . The method of  claim 1  wherein said executing further comprises creating, as a consequence of said first additional byte code instructions being executed, an object having an input parameter value of said first method. 
     
     
         9 . The method of  claim 1  wherein said dictionary identifies an address where said plug-in module can be found. 
     
     
         10 . The method of  claim 1  wherein said modifying further comprises inserting third additional bytecode instructions in a location that is executed only if a failure arises during execution of said first method. 
     
     
         11 . The method of  claim 10  further comprising executing said third additional bytecode instructions because a failure occurred during said executing of said first method's byte modified bytecode instructions. 
     
     
         12 . The method of  claim 11  wherein said executing said third additional bytecode instructions further comprises raising a generic error condition. 
     
     
         13 . A machine readable medium containing instructions which when executed cause a method to be performed, said method comprising:
 a) modifying a first method's bytecode instructions, before said method's classfile has begun to be loaded for processing during runtime, by:
 inserting first additional bytecode instructions in a location that is executed if an entry point of said first method is reached during execution of said first method; 
 inserting second additional bytecode instructions in a location that is executed if a specific exit point of said first method is reached during execution of said first method; and, 
   performing the following during runtime:   b) commencing a runtime phase to cause said first method's modified bytecode instructions to be executed so as to perform the following:
 invoking a second method with said first additional bytecode instructions, said second method belonging to a class that maintains a dictionary, said dictionary having a listing that correlates said first method to a plug-in module, said invoking including passing said first method's class name, method name, and argument types to said second method; 
   c) invoking said plug-in module, said plug-in module having a third method and executing said third method to provide a first output for said first method;   d) invoking said second method with said second additional bytecode instructions; and   e) invoking said plug-in module and executing said third method to provide a second output for said first method.   
     
     
         14 . The machine readable medium of  claim 13  wherein said first output is an entry time for said first method. 
     
     
         15 . The machine readable medium of  claim 13  wherein said second output is an exit time for said first method. 
     
     
         16 . The machine readable medium of  claim 13  wherein said first output is a counter value maintained for said first method. 
     
     
         17 . The machine readable medium of  claim 13  wherein said first output is an input parameter value of said first method. 
     
     
         18 . The machine readable medium of  claim 13  wherein said second output is a returned value of said first method. 
     
     
         19 . The machine readable medium of  claim 13  wherein said first method is a constructor. 
     
     
         20 . The machine readable medium of  claim 13  wherein said method further comprises creating an object having an input parameter value of said first method during said runtime phase. 
     
     
         21 . The machine readable medium of  claim 13  wherein said dictionary identifies an address where said plug-in module can be found. 
     
     
         22 . The machine readable medium of  claim 13  wherein said modifying further comprises inserting third additional bytecode instructions in a location that is executed only if a failure arises during execution of said first method. 
     
     
         23 . The machine readable medium of  claim 22  wherein said third additional bytecode instructions are executed during said runtime phase only if a failure occurs during said execution of said first method's byte modified bytecode instructions during said runtime phase. 
     
     
         24 . The machine readable medium of  claim 23  wherein execution of said third additional bytecode instructions causes a generic error condition to be raised. 
     
     
         25 . A computing system implemented with a machine readable medium containing instructions which when executed cause a method to be performed, said method comprising:
 a) modifying a first method's bytecode instructions, before said method's classfile has begun to be loaded for processing during runtime, by:
 inserting first additional bytecode instructions in a location that is executed if an entry point of said first method is reached during execution of said first method; 
 inserting second additional bytecode instructions in a location that is executed if a specific exit point of said first method is reached during execution of said first method; and, 
   performing the following during runtime:   b) executing said first method's modified bytecode instructions during a runtime phase so as to perform the following:
 invoking a second method with said first additional bytecode instructions, said second method belonging to a class that maintains a dictionary, said dictionary having a listing that correlates said first method to a plug-in module, said invoking including passing said first method's class name, method name, and argument types to said second method; 
   c) invoking said plug-in module, said plug-in module having a third method and executing said third method to provide a first output for said first method;   d) invoking said second method with said second additional bytecode instructions; and   e) invoking said plug-in module and executing said third method to provide a second output for said first method.   
     
     
         26 . The computing system of  claim 25  wherein said first output is an entry time for said first method. 
     
     
         27 . The computing system of  claim 25  wherein said second output is an exit time for said first method. 
     
     
         28 . The computing system of  claim 25  wherein said first output is a counter value maintained for said first method. 
     
     
         29 . The computing system of  claim 25  wherein said first output is an input parameter value of said first method. 
     
     
         30 . The computing system of  claim 25  wherein said second output is a returned value of said first method. 
     
     
         31 . The computing system of  claim 25  wherein said first method is a constructor. 
     
     
         32 . The computing system of  claim 25  wherein said method further comprises creating an object having an input parameter value of said first method during said runtime phase. 
     
     
         33 . The computing system of  claim 25  wherein said dictionary identifies an address where said plug-in module can be found. 
     
     
         34 . The computing system of  claim 25  wherein said modifying further comprises inserting third additional bytecode instructions in a location that is executed only if a failure arises during execution of said first method. 
     
     
         35 . The computing system of  claim 34  wherein said third additional bytecode instructions are executed during said runtime phase only if a failure occurs during said execution of said first method's byte modified bytecode instructions during said runtime phase. 
     
     
         36 . The computing system of  claim 35  wherein execution of said third additional bytecode instructions causes a generic error condition to be raised.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.