System Requirements¶
Java Builds¶
Undo for Java is supported on x86_64 and ARM64 builds of Java [*] SE 8, 11, 17, 21, and 25 from OpenJDK, Zulu, Amazon Corretto (including Corretto 17 with Lilliput compact object headers), and Oracle, running on Linux.
Debug Symbols¶
For certain OpenJDK variants (e.g. Ubuntu) , debug symbols must be installed separately. You can check if debug symbols are installed by running the following command:
java -cp $LR4J_HOME/lib/undo-jdwp-java-1.0.jar io.undo.jdwp.commands.VerifyJava
If the debug symbols are not found, you will see output similar to:
debug symbols not found!
Expected file /usr/lib/debug/.build-id/45/1fa129fe8caf99e97f87f24d4f144c4c8f2555.debug does not exist
If it is the case that debug symbols cannot be installed on your system it is possible to work round
this. If you send us the output from the above command then we can supply the missing debug file. This
can then be specified using the environment variable BRIDGE_BUILD_ID_PREFIX. For instance if you install the
missing debug file in /tmp/undo/usr/lib/debug/.build-id/45/1fa129fe8caf99e97f87f24d4f144c4c8f2555.debug
then you would run the replay command after setting BRIDGE_BUILD_ID_PREFIX=/tmp/undo.
Linux Distributions¶
Undo for Java is supported on the following Linux distributions:
Amazon Linux 2, Amazon Linux 2023.
Red Hat Enterprise Linux 8.6-8.10, 9.2-9.4.
Fedora 40, 41.
SUSE Linux Enterprise Server 15 SP5 (15.5), 15 SP6 (15.6).
Ubuntu 22.04 LTS, 24.04 LTS, 24.10.
IDE¶
Undo for Java recordings are replayable in release 2023.1 and later of IntelliJ IDEA [†], on all Windows, macOS and Linux versions supported by IDEA.
Recording Portability¶
Version compatibility
Undo for Java provides backwards compatibility. i.e. recordings made by an older release on a Linux distribution supported by that older release are replayable by the same or a later release of the Undo Engine on a Linux distribution supported by that later release.
Undo for Java does not guarantee forwards compatibility.
JDK compatibility
Recordings made against any supported JDK are replayable using any other supported JDK. The JDK used for replay does not need to match the major version of the JDK used for recording.
Cross-distribution compatibility
Recordings made on a supported Linux distribution are replayable on any other supported Linux distribution.
Containers and Virtual Machines
Recordings made within a container, VM or WSL2 are replayable on a physical machine, and vice versa.
- BRIDGE_BUILD_ID_PREFIX¶
Alternative location to search for debug symbol files.