IP Library Granted Patent US 11,586,431
Granted Patent B1
US 11,586,431 · App. 17/545,046 · Granted Feb 21, 2023

Dynamically upgrading java runtime environments with running applications

Inventors: Sharon Katz (Toronto, CA); Jeffrey Myers (Somerville, MA); Paul-Andrew Joseph Miseiko (Mississauga, CA); John Southern (Toronto, CA); Tyler Stiller (Alexandria, VA)
Assignee: Rapid7 , Inc.
G06F8/65G06F9/44526G06F9/45516H04L63/20
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 11,586,431
App. No.
17/545,046
Granted
Feb 21, 2023
Kind
B1
Abstract

Disclosed herein are methods, systems, and processes to perform self-dependent upgrades of Java Runtime Environments (JREs). A request to update a plugin to a new version with a new configuration that includes a location to download a new upgrader-executable is received from a platform computing device at an endpoint computing device. The plugin is uploaded to the new version. The new upgrader-executable that includes an executable with an executable table executed by the plugin is downloaded from the location. The executable is used to halt execution of a JRE application (e.g., a Collector) and download JRE files required for the upgrade. The JRE application (e.g., the Collector) is then re-started with the new configuration, which can be rolled back if the upgrade is unsuccessful.

Claims (67)

1. A method comprising:

performing, by a computing device:

executing a Java application in a Java Runtime Environment (JRE);

downloading a plugin from a platform computing device of a cloud-based platform;

executing the plugin to download an upgrader executable for upgrading the JRE;

executing the upgrader executable, wherein

the execution of the upgrader executable comprises:

halting the execution of the Java application, and

downloading one or more files for upgrading the JRE; and

re-starting the Java application after the JRE is updated with the one or more files.

2. The method of claim 1 , wherein

the plugin is downloaded in response to a request from the platform computing device.

3. The method of claim 2 , wherein

the request indicates a location where to download the upgrader executable.

4. The method of claim 1 , wherein

downloading the plugin comprises downloading an update to the plugin, and

the method further comprises updating the plugin to a new version based on the downloaded update.

5. The method of claim 1 , wherein

the plugin is a bundle plugin.

6. The method of claim 1 , further comprising the computing device:

validating the upgrader executable based on a signature file.

7. The method of claim 1 , further comprising the computing device:

launching a collector associated with the Java application;

determining that a first upgrade of the JRE is not successful; and

rolling back the collector to a previous running state based on the determination that the first upgrade is not successful.

8. The method of claim 1 , wherein

the cloud-based platform performs one or more cybersecurity services for a client network including the computing device.

9. The method of claim 8 , wherein

the Java application implements a collector that collects data about the client network or the computing device and sends the collected data to the cloud-based platform.

10. The method of claim 1 , wherein

the cloud-based platform is accessible over a public network, and

the plugin and the upgrader executable are downloaded over the public network.

11. A system comprising:

a computing device implemented by one or more processors and associated memory, configured to:

execute a Java application in a Java Runtime Environment (JRE);

download a plugin from a platform computing device of a cloud-based platform;

execute the plugin to download an upgrader executable for upgrading the JRE;

execute the upgrader executable to:

halt the execution of the Java application;

download one or more files for upgrading the JRE; and

re-start the Java application after the JRE is updated with the one or more files.

12. The system of claim 11 , wherein

the computing device is configured to download the plugin in response to a request from the platform computing device.

13. The system of claim 12 , wherein

the request indicates a location where to download the upgrader executable.

14. The system of claim 11 , wherein

the computing device is configured to update the plugin to a new version based on an update to the plugin downloaded from the platform computing device.

15. The system of claim 11 , wherein

the computing device is configured to validate the upgrader executable based on a signature file.

16. The system of claim 11 , wherein

the computing device is configured to:

determine that a first upgrade of the JRE is not successful, and

roll back the Java application to a previous running state based on the determination that the first upgrade is not successful.

17. The system of claim 11 , wherein

the cloud-based platform performs one or more cybersecurity services for a client network that includes the computing device, and

the Java application implements a collector that collects data about the client network or the computing device and sends the collected data to the platform.

18. One or more non-transitory computer readable storage media storing program instructions that when executed on one or more processors of a computing device cause the computing device to:

download a plugin from a platform computing device of a cloud-based platform;

execute the plugin to download an upgrader executable for upgrading a Java runtime environment (JRE);

execute the upgrader executable to:

halt execution of a Java application executing in the JRE, and

download one or more files for upgrading the JRE; and

re-start the Java application after the JRE is updated with the one or more files.

19. The one or more non-transitory computer readable storage media of claim 18 , wherein

the program instructions when executed on the one or more processors cause the computing device to download the plugin in response to a request from a platform computing device.

20. The one or more non-transitory computer readable storage media of claim 19 , wherein

the program instructions when executed on the one or more processors cause the computing device to determine a location where to download the upgrader executable from the request.

Assignments (2)
SECURITY INTEREST Recorded Jun 26, 2025
From: RAPID7, INC.; RAPID7 LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 071743/0537 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 8, 2022
From: KATZ, SHARON; MISEIKO, PAUL-ANDREW JOSEPH; MYERS, JEFFREY; SOUTHERN, JOHN; STILLER, TYLER
To: RAPID7, INC.
Reel/Frame 058927/0299 →
Continuity (1)
Continuation 16944603 · Jul 31, 2020