IP Library Granted Patent US 9,015,728
Granted Patent B2
US 9,015,728 · App. 12/902,990 · Granted Apr 21, 2015

Methods, apparatus, and systems to access runtime values of object instances

Inventor: Walter T. Hulick, Jr. (Pearland, TX)
Assignee: Hewlett-Packard Development Company, L.P.
G06F9/45508G06F9/443G06F9/468
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,015,728
App. No.
12/902,990
Filed
Oct 12, 2010
Granted
Apr 21, 2015
Kind
B2
Art Unit
2194
USPC
719/312
Abstract

In one embodiment, a plurality of executable instructions is stored at a first software module. The plurality of executable instructions are collectively configured to provide an identifier of a first object instance to a second software module stored at a memory and executed at the processor. The identifier of the first object instance is received at the second software module in response to execution of the plurality of executable instructions and a textual object element identifier is selected from a plurality of textual object element identifiers. Each textual object element identifier from the plurality of textual object element identifiers uniquely associated with an object element. An identifier of a second object instance is accessed and the object element uniquely associated with the textual object element identifier is reflectively accessed at the second object instance. The first object instance derived from the second object instance.

Claims (74)

1. A non-transitory processor-readable medium storing code representing instructions to cause a processor to perform a process, the code comprising code to:

receive an identifier of a first object instance that inherits from a second object instance in an instrumented application module;

access an expression including, at a same time, a first textual object element identifier and a second textual object element identifier;

reflectively request access to a first object element at the first object instance based on the identifier of the first object instance and the first textual object element identifier wherein the first object element is not made accessible by an instrumented application module;

receive an identifier of the second object instance in response to the reflective request for access to the first object element; and

reflectively request access to a second object element at the second object instance based on the identifier of the second object instance and the second textual object element identifier wherein the second object element is not made accessible by the instrumented application module.

2. The processor-readable medium of claim 1 , the code further comprising code to:

receive an object element value associated with the second object element in response to the reflective request for access to the second object element at the second object instance; and

store the object element value at a data cache within a memory.

3. The processor-readable medium of claim 1 , wherein the reflective requesting access to the second object element at the second object instance is at a first time, the code further comprising code to:

receive an object element value associated with the second object element in response to the reflective request for access to the second object element at the second object instance;

store the object element value at a data cache within a memory;

receive, at a second time after the first time, an identifier of the second object instance and the second textual object element identifier; and

access the object element value at the data cache.

4. The processor readable medium of claim 1 , wherein the reflective requesting access to the second object element at the second object instance is at a first time, the code further comprising code to:

modify, before the first time, a permissions value at the second object instance.

5. The processor readable medium of claim 1 , wherein the reflective requesting access to the second object element at the second object instance is at a first time, the code further comprising code to:

access, before the first time, a first permissions value at the second object instance;

store, before the first time, a second permissions value different from the first permissions value at the second object instance; and

store, after the first time, the first permissions value at the second object instance.

6. The processor readable medium of claim 1 , the code further comprising code to:

receive an indication that the second object instance does not include the second object element; and

recursively request access to the second object element based on the second textual object element identifier at each base object instance from a plurality of base object instances associated with the second object instance.

7. The processor readable medium of claim 1 , the code further comprising code to:

receive an indication that the second object instance does not include the second object element;

recursively request access to the second object element based on the second textual object element identifier at each base object instance from a plurality of base object instances associated with the second object instance;

determine that no base object instance from the plurality of base object instances includes the second object element; and

dump each base object instance from the plurality of base object instances in response to the determining.

8. The processor readable medium of claim 1 , wherein the second textural object element identifier defines a textual pattern, the code further comprising code to:

receive an object element value of the second object element in response to the reflective for access to the second object element at the second object instance, the object element having a textual object element identifier that satisfies the textual pattern.

9. The processor readable medium of claim 1 , wherein the second textural object element defines a textual pattern, the reflective request for access to the second object element at the second object instance is at a first time, and the reflective request for access to the second object element at the second object instance includes a first derived textual object element identifier based on the textual pattern, the code further comprising code to:

receive an indication that the second object instance does not include an object element having the first derived textual object element identifier;

generate a second derived textual object element identifier based on the textual pattern; and

reflectively request, at a second time after the first time, access to the second object element at the second object instance, the reflective request at the second time for access to the second object element at the second object instance including the second derived textual object element.

10. A method of accessing runtime values of object instances, comprising:

storing a plurality of executable instructions at a first software module, the plurality of executable instructions collectively configured to provide an identifier of a first object instance to a second software module stored at a memory and executed at a processor;

receiving the identifier of the first object instance at the second software module in response to execution of the plurality of executable instructions;

selecting, in response to the receiving, a textual object element identifier from a plurality of textual object element identifiers that are accessed at a same time, each textual object element identifier from the plurality of textual object element identifiers uniquely associated with an object element;

reflectively accessing an identifier of a second object instance, the first object instance derived from the second object instance; and

reflectively accessing at the second object instance the object element uniquely associated with the textual object element identifier wherein the object element is not made accessible by the first software module.

11. The method of claim 10 , wherein the object element uniquely associated with a first textual object element identifier from the plurality of textual object element identifiers is a field object element and the object element uniquely associated with a second textual object element identifier from the plurality of textual object element identifiers is a method object element, the method further comprising:

receiving, before the selecting, an expression including the plurality of textual object element identifiers.

12. The method of claim 10 , wherein:

the executable instructions are Java bytecodes;

the first object instance is a Java object; and

the second object instance is a Java object.

13. The method of claim 10 , wherein the reflectively accessing at the second object instance the object element uniquely associated with the textual object element identifier is at a first time, the method further comprising:

receiving an object element value associated with the object element in response to the reflectively accessing at the second object instance the object element uniquely associated with the textual object element identifier;

storing the object element value at a data cache within a memory;

receiving, at a second time after the first time, the identifier of the second object instance and the textual object element identifier; and

accessing the object element value at the data cache.

14. The method of claim 10 , wherein the reflectively accessing at the second object instance the object element uniquely associated with the textual object element identifier is at a first time, the method further comprising:

accessing, before the first time, a first permissions value at the second object instance;

storing, before the first time, a second permissions value different from the first permissions value at the second object instance; and

storing, after the first time, the first permissions value at the second object instance.

15. A system to access runtime values of object instances, comprising:

a processor and a computer readable medium storing instructions executable by the processor, the instructions comprising:

a script expression module including a plurality of expressions, each expression from the plurality of expressions having a textual object element identifier, wherein each of the textual object element identifiers is included in the script expression module at a same time;

an instrumented application module including a first object instance and a second object instance, the second object instance being a base object instance of the first object instance wherein each of the textual object element identifiers are not made accessible by the instrumented application module; and

a script reflection engine to receive an expression from the script expression module and an identifier of the first object instance, the instrumented application module configured to provide the identifier of the first object instance to the script reflection engine in response to the instrumentation of the instrumented application module,

the script reflection engine configured to reflectively request access to an object element associated with the textual object element identifier at the first object instance based on the textual object element identifier of the expression and the identifier of the first object instance,

the script reflection engine configured to access the second object instance if the object element is not accessible at the first object instance and reflectively request access to the object element at the second object instance based on the textual object element identifier of the expression.

16. The system of claim 15 , wherein the instrumented application module and the script reflection engine are hosted at an instance of a virtual machine.

17. The system of claim 15 , wherein:

the instrumented application module is configured to provide a key value to the script reflection engine; and

the script reflection engine is configured to select the expression based on the key value.

18. The system of claim 15 , wherein:

the script reflection engine is configured to determine that the object element is not accessible at the second object instance; and

the script reflection engine is configured to dump the first object instance and the second object instance if object element is not accessible at the second object instance.

19. The system of claim 15 , wherein:

the script reflection engine is configured to access, before reflectively requesting access to the object element at the first object instance, a first permissions value at the first object instance;

the script reflection engine is configured to store, before reflectively requesting access to the object element at the first object instance, a second permissions value different from the first permissions value at the first object instance; and

the script reflection engine is configured to store, after reflectively requesting access to the object element at the first object instance, the first permissions value at the first object instance.

20. The system of claim 15 , wherein the instrumented application module is configured to provide the identifier of the first object instance and a key value to the script reflection engine in response to instantiation of the first object instance, the key value associated with an expression from the plurality of expressions.

Assignments (8)
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0577 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC)
Reel/Frame 063560/0001 →
CHANGE OF NAME Recorded Aug 8, 2019
From: ENTIT SOFTWARE LLC
To: MICRO FOCUS LLC
Reel/Frame 050004/0001 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ENTIT SOFTWARE LLC; ARCSIGHT, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0577 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2017
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: ENTIT SOFTWARE LLC
Reel/Frame 042746/0130 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 12, 2010
From: HULICK, WALTER T., JR.
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 025128/0623 →
Continuity (1)
Related Publication 20120089987A1 · Apr 12, 2012