dotCMS / dotCMS/core

Java 25: Address runtime warnings and deprecations

Open
#34,572 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

stale
Dominant language
Java
Stars
970
Forks
486
Avg merge
3d 33m
Merged PRs (30d)
170

Description

Overview

Track and address Java 25 runtime warnings and API deprecations discovered during smoke testing.

Created from Issue: #34564 (Java 25 dotCMS image for smoke testing)
Status: Non-blocking - dotCMS runs successfully with these warnings
Priority: Low - These are future compatibility issues, not current blockers


1. ZGenerational GC Option Removed ⚠️

Warning:

OpenJDK 64-Bit Server VM warning: Ignoring option ZGenerational; support was removed in 24.0

Impact: Medium - JVM ignores the flag silently
Action Required:

  • Remove -XX:+ZGenerational from JVM configuration
  • Update Docker entrypoint scripts
  • Update documentation for Java 25+ deployments

2. sun.misc.Unsafe Deprecations

Warning:

WARNING: A terminally deprecated method in sun.misc.Unsafe has been called
WARNING: sun.misc.Unsafe::arrayBaseOffset will be removed in a future release

Impact: Low - Used by third-party libraries (Disruptor 3.3.4)
Action Required:

  • Monitor for updated library versions
  • Track upstream Java removal timeline

3. Restricted Methods Warning

Impact: Low - Informational for future JDK releases
Action Required:

  • Evaluate --enable-native-access=ALL-UNNAMED flag

Testing Notes

Environment: Java 25.0.1+8-LTS (Microsoft), 969MB container
Status: ✅ Successful startup in 21.4 seconds
Conclusion: All warnings are expected and non-blocking


Acceptance Criteria

  • Remove ZGenerational GC flag from JVM options
  • Document Java 25 warnings for customers
  • Check for library updates avoiding sun.misc.Unsafe
  • Evaluate need for --enable-native-access flag

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the JVM configuration and Docker entrypoint scripts, then reproduce the Java 25 smoke test described in the issue to confirm the warnings. Done means the ZGenerational option is removed, Java 25 warnings are documented, library updates are checked, and the native-access flag is evaluated.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, java
Domain
backend, devops
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.