# US 2017/0286255 A1 · Generating verification metadata and verifying a runtime type based on verification metadata

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2017/0286255 A1
- Document ID: US20170286255A1
- Status: Published application
- Kind: A1
- Application number: 15/156,975
- Filed: 2016-05-17
- Published: 2017-10-05
- Earliest claimed: 2016-03-30
- Assignees: Oracle International Corporation
- Applicants: Oracle International Corporation
- Inventors: Karen Margaret Pearson Kinnear; Harold David Seigel; Lois Dickinson Foltan; Ioi Kim Lam
- Web page: https://patentgrep.com/patent/US20170286255A1

## CPC

- G06F 9/45504: {Abstract machines for program code execution, e.g. Java virtual machine [JVM], interpreters or emulators}
- G06F 8/437: {Type checking}
- G06F 9/44521: {Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Operations include (a) receiving a request to verify a first runtime type loaded based on a first runtime type reference; (b) identifying verification metadata comprising a stored assignable relationship between a second runtime type reference and a third runtime type reference; (c) determining whether an actual assignable relationship between a second runtime type and a third runtime type adheres to the stored assignable relationship between the second runtime type reference and the third runtime type reference; and (d) responsive at least to determining that the actual assignable relationship adheres to the stored assignable relationship, determining that the first runtime type is verified based on the verification metadata.

## Claims

### Claim 1

A non-transitory computer readable medium comprising instructions which, when executed by one or more hardware processors, causes performance of operations comprising: receiving a request to verify a first runtime type loaded based on a first runtime type reference; responsive to receiving the request to verify the first runtime type:
identifying verification metadata comprising a stored assignable relationship between a second runtime type reference and a third runtime type reference;
determining whether an actual assignable relationship between a second runtime type and a third runtime type adheres to the stored assignable relationship between the second runtime type reference and the third runtime type reference; and
responsive at least to determining that the actual assignable relationship adheres to the stored assignable relationship, determining that the first runtime type is verified based on the verification metadata.

### Claim 2 (depends on 1)

The medium of claim 1, wherein:
the second runtime type reference comprises a particular type and a particular class loader type reference for loading the particular type; and
the third runtime type reference comprises a different type and a different class loader type reference for loading the different type.

### Claim 3 (depends on 1)

The medium of claim 1, wherein the second runtime type is loaded based on the second runtime type reference.

### Claim 4 (depends on 1)

The medium of claim 1, wherein the first runtime type is determined to be verified based on the verification metadata regardless of whether the second runtime type is equivalent to a runtime type loaded, based on the second runtime type reference, during a prior time period in which the verification metadata was generated.

### Claim 5 (depends on 1)

The medium of claim 1, wherein the first runtime type is determined to be verified based on the verification metadata without determining that the second runtime type is equivalent to a runtime type loaded, based on the second runtime type reference, during a prior time period in which the verification metadata was generated.

### Claim 6 (depends on 1)

The medium of claim 1, wherein determining that the first runtime type is verified based on the verification metadata is further responsive to:
determining that the first runtime type is equivalent to a runtime type loaded, based on the first runtime type reference, during a prior time period in which the verification metadata was generated.

### Claim 7 (depends on 6)

The medium of claim 6, wherein determining that the first runtime type is equivalent to the runtime type loaded, based on the first runtime type reference, during the prior time period in which the verification metadata was generated comprises:
determining a first checksum of a first class file corresponding to the runtime type loaded, based on the first runtime type reference, during the prior time period in which the verification metadata was generated;
determining a second checksum of a second class file corresponding to the first runtime type; and
determining that the first checksum and the second checksum are same.

### Claim 8 (depends on 1)

The medium of claim 1, wherein determining that the first runtime type is verified based on the verification metadata is further responsive to:
determining that a fourth runtime type, loaded based on a fourth runtime type reference, is a super-type of the first runtime type; and
determining that the fourth runtime type is equivalent to a runtime type loaded, based on the fourth runtime type reference, during a prior time period in which the verification metadata was generated.

### Claim 9 (depends on 1)

The medium of claim 1, wherein determining that the first runtime type is verified based on the verification metadata is further responsive to:
determining that a fourth runtime type, loaded based on a fourth runtime type reference, is a required pre-loaded type of the first runtime type; and
determining that the fourth runtime type is equivalent to a runtime type loaded, based on the fourth runtime type reference, during a prior time period in which the verification metadata was generated.

### Claim 10 (depends on 1)

The medium of claim 1, wherein the operations further comprise:
responsive at least to determining that the actual assignable relationship does not adhere to the stored assignable relationship, failing to verify the first runtime type based on the verification metadata.

### Claim 11 (depends on 1)

The medium of claim 1, wherein the stored assignable relationship between the second runtime type reference and the third runtime type reference was determined during a prior successful verification of a runtime type loaded based on the first runtime type reference.

### Claim 12 (depends on 11)

The medium of claim 11, wherein:
the request to verify the first runtime type is received by a first class loader in a first class loader context; and
the prior successful verification was performed by a second class loader in a second class loader context different than the first class loader context.

### Claim 13 (depends on 11)

The medium of claim 11, wherein:
the request to verify the first runtime type is received in a first runtime environment; and
the prior successful verification was performed in a second runtime environment different than the first runtime environment.

### Claim 14 (depends on 1)

The medium of claim 1, wherein the operations further comprise:
prior to receiving the request to verify the first runtime type, receiving a prior request to verify a runtime type loaded based on the first runtime type reference;
responsive to receiving the prior request to verify the runtime type loaded based on the first runtime type reference:
determining that there is an assignable relationship between (a) a runtime type loaded based on the second runtime type reference and (b) a runtime type loaded based on the third runtime type reference; and
storing the stored assignable relationship between the second runtime type reference and the third runtime type reference.

### Claim 15 (depends on 1)

The medium of claim 1, wherein determining that the actual assignable relationship adheres to the stored assignable relationship comprises: determining that the second runtime type is a super-type of the third runtime type.

### Claim 16 (depends on 1)

The medium of claim 1, wherein determining that the first runtime type is verified based on the verification metadata comprises: validating a previously-performed verification for a runtime type loaded based on the first runtime type reference.

### Claim 17

A method, comprising:
receiving a request to verify a first runtime type loaded based on a first runtime type reference;
responsive to receiving the request to verify the first runtime type:
identifying verification metadata comprising a stored assignable relationship between a second runtime type reference and a third runtime type reference;
determining whether an actual assignable relationship between a second runtime type and a third runtime type adheres to the stored assignable relationship between the second runtime type reference and the third runtime type reference; and
responsive at least to determining that the actual assignable relationship adheres to the stored assignable relationship, determining that the first runtime type is verified based on the verification metadata;
wherein the method is performed by at least one hardware device including a processor.

### Claim 18

A system, comprising:
at least one hardware device including a processor; and
the system configured to perform operations comprising:
receiving a request to verify a first runtime type loaded based on a first runtime type reference;
responsive to receiving the request to verify the first runtime type:
identifying verification metadata comprising a stored assignable relationship between a second runtime type reference and a third runtime type reference;
determining whether an actual assignable relationship between a second runtime type and a third runtime type adheres to the stored assignable relationship between the second runtime type reference and the third runtime type reference; and
responsive at least to determining that the actual assignable relationship adheres to the stored assignable relationship, determining that the first runtime type is verified based on the verification metadata.

### Claim 19 (depends on 18)

The system of claim 18, wherein:
the second runtime type reference comprises a particular type and a particular class loader type reference for loading the particular type; and
the third runtime type reference comprises a different type and a different class loader type reference for loading the different type.

### Claim 20 (depends on 18)

The system of claim 18, wherein the second runtime type is loaded based on the second runtime type reference.
