This week's Java roundup for October 5th, 2026, features news highlighting: OpenJDK JEPs Proposed to Target for JDK 28; Lazy Constants elevated to Candidate status; the GA releases of Apache Grails 8.0 and Open Liberty 20.0.0.10; point releases of TornadoVM, Infinispan, LangChain4j and Spock; and a maintenance release of GlassFish.
OpenJDK
JEP 546, Adaptive Heap Sizing for ZGC, has been elevated from Candidate to Proposed to Target for JDK 28. This JEP proposes to "enhance the Z Garbage Collector to adaptively adjust the size of the heap based on the resources available, the application's needs, and the needs of neighboring applications contending for the same resources." The review is expected to conclude on Wednesday, October 14, 2026.
JEP 545, Faster Startup and Warmup with ZGC, has been elevated from Candidate to Proposed to Target for JDK 28. This JEP proposes to "improve application startup and warmup by enhancing the Z Garbage Collector to acquire and prepare physical memory more swiftly and efficiently in response to application needs." The review is expected to conclude on Wednesday, October 14, 2026.
JEP 543, Structured Concurrency, has been elevated from Candidate to Proposed to Target for JDK 28. This JEP proposes to finalize this feature, without change, after seven rounds of preview, delivered in JDK 21 through the upcoming release of JDK 27, and two rounds of incubator delivered in JDK 19 and JDK 20. This feature simplifies concurrent programming by introducing structured concurrency to "treat groups of related tasks running in different threads as a single unit of work, thereby streamlining error handling and cancellation, improving reliability, and enhancing observability." The review is expected to conclude on Tuesday, October 13, 2026.
JEP 547, Lazy Constants (Fourth Preview), has been elevated from its JEP Draft 8389764 to Candidate status. This JEP proposes a fourth preview, with no changes, after three rounds of preview delivered in the upcoming release of JDK 27 and JDK 26 through JDK 25. Formerly known as Stable Values and Computed Constants, this feature introduces the concept of computed constants, defined as immutable value holders that are initialized at most once. This offers the performance and safety benefits of final fields, while offering greater flexibility as to the timing of initialization. The name change from Stable Values to Lazy Constants with the release of JDK 26, better captures the intent of a high-level use case.
JDK 28
Build 19 of the JDK 28 early-access builds was made available this past week featuring updates from Build 18 that include fixes for various issues. More details on this release may be found in the release notes.
For JDK 28, developers are encouraged to report bugs via the Java Bug Database.
GlassFish
The release of GlassFish 8.0.5 delivers bug fixes, documentation improvements, dependency upgrades and new features such as: updates to the ZipPayloadImpl class to include the Header ID and Data Size values in the extra header as per the ZIP64 Extra Fields (JDK-8302483) specification; and improvements in deployment time for both large and small applications. Further details on this release may be found in the release notes.
Apache Grails
The release of Apache Grails 8.0.0 ships with bug fixes, documentation improvements, dependency upgrades and new features such as: support for JDK 21 and Gradle 9.7 as minimal versions; all controllers are now REST resources that resolve a controller from the request as opposed to the mapping; and Grails Promises now run on top of the Spring Boot Task Executor. More details on this release may be found in the release notes.
TornadoVM
The release of TornadoVM 7.2.0 and 7.1.0 provide notable changes such as: new methods, mmaLoadA() and mmaLoadB(), added to the KernelContext class, that return 8-element and 4-element fragments, respectively, of the HalfFloat class; and updates to the CUDACommandQueue, CUDAEvent and CUDAHandles classes such that they now accurately report the driver dispatch time for kernel launches and data transfers. Further details on these releases may be found in the release notes for version 7.2.0 and version 7.1.0.
Open Liberty
The GA release of Open Liberty 26.0.0.10 delivers: bug fixes; support for JDK 27; and resolutions to seven CVEs affecting various Open Liberty features. Developers should note that, with G1 now the default GC in all environments, users running Open Liberty in a constrained environment may experience a different garbage collection behavior compared to earlier Java versions.
Infinispan
The release of Infinispan 16.3.0, codenamed Tripel Karmeliet for "robustness," ships with bug fixes, documentation improvements, dependency upgrades and new features such as: a more efficient hash-based conflict detection and resolution when merging partitions; enhanced configuration as attributes are now persisted to survive restarts; and improved logging to reduce log noise. More details on this release may be found in the release notes.
LangChain4j
The formal release (along with the thirty-second beta release) of LangChain4j 1.22.0 provides bug fixes, documentation improvements, dependency upgrades and new features such as: a new BedrockBatchChatModel class that implements the core BatchChatModel interface on the Bedrock batch inference API; and new OpenAiDecisionModel and OpenAiOfficialDecisionModel classes to support the OpenAI Decisions API. Further details on this release may be found in the release notes.
Micronaut
The release of Micronaut Framework 5.2.2, based on Micronaut Core 5.2.15, delivers an update to Netty 4.2.19.Final featuring resolutions to 16 CVEs including HTTP request/response smuggling and unbounded resource consumption in the HTTP, HTTP/2 and HTTP/3 codecs. There were also patch updates to modules: Micronaut Data and Micronaut Test Resources. More details on this release may be found in the release notes.
Spock
The release of Spock 2.5.0 ships with bug fixes and new features such as: support for Groovy 6 and Spring Framework 7; improvements to the TooManyInvocationsError class that now reports unsatisfied interactions for easier diagnosis of mismatched invocations; and support for local variables declared as final in where: blocks. Further details on this release, including breaking changes, may be found in the release notes.
About the Author
Michael Redlich
Show moreShow less
