Skip to content

Hot Code Replace

Jinbo Wang edited this page Apr 25, 2021 · 6 revisions

Prerequisite

java.autobuild.enabled user setting is not disabled.

Limitation

The Hot Code Replace feature depends on the underlying JVM interface VirtualMachine#redefineClasses, and different JVM implementations will have different limitations. Using a typical oracle JDK as an example, below are limitations of Hot Code Replace:

  • It's only available if a method body is modified. If succeeded, it will pop into the top most call stack that involving the changed types.
  • Changing method signatures such as modifying method names and parameters is not supported.
  • Adding and removing class members is not supported.
  • Changes on the top call stack are not supported.
  • Changes on the call stack above the native methods are not supported.

When you see these HCR failures, don't worry. It is safe to continue running the application, but you may notice discrepancies when debugging this application.

Clone this wiki locally