5.5.6 Release Notes
These release notes list any new features, enhancements, fixes, and breaking changes implemented between version 5.5.5 and version 5.5.6 of Hazelcast Platform.
Release date: 2025-05-19
This is a maintenance release for Enterprise Edition.
For help downloading Hazelcast Enterprise Edition, see Installing Hazelcast Enterprise Edition or request a trial license key.
Security
-
Updated exception handling for non-existent JAAS classes: Resolved an issue where specifying a non-existent class for JAAS configuration did not result in an appropriate exception being logged. Previously, this caused a lack of visibility into configuration errors, making it harder to diagnose issues. The fix ensures that when a non-existent class is specified for JAAS, an
InvalidConfigurationException
is properly logged in the server logs, replacing the incorrect reference toClassNotFoundException
. -
Security Fix for CVE-2025-31651 - Improper neutralization of escape, meta, or control sequences vulnerability in Apache Tomcat: We have resolved CVE-2025-31651, a critical vulnerability in Apache Tomcat where for a subset of unlikely rewrite rule configurations, it was possible for a specially crafted request to bypass some rewrite rules.
-
Security Fix for CVE-2025-24813 - Remote code execution and/or information disclosure and/or malicious content added to uploaded files via write enabled Default Servlet in Apache Tomcat: We have resolved CVE-2025-24813, a critical vulnerability in Apache Tomcat where in some circumstances a malicious user was able to view security sensitive files and/or inject content into those files.
-
Security Fix for CVE-2025-31650 - Improper input validation vulnerability in Apache Tomcat: We have resolved CVE-2025-31650, a high vulnerability in Apache Tomcat where incorrect error handling for some invalid HTTP priority headers resulted in incomplete clean-up of the failed request which created a memory leak.
-
Security Fix for CVE-2024-38286 - Allocation of resources without limits or throttling vulnerability in Apache Tomcat: We have resolved CVE-2024-38286, a high vulnerability in Apache Tomcat where under certain configurations on any platform, it allows an attacker to cause an OutOfMemoryError by abusing the TLS handshake process.
Fixes
-
Fixed TTL eviction issue for entries loaded from MapLoader: Resolved an issue where entries loaded from a
MapLoader
into anIMap
with TTL-based eviction enabled were not evicted after the configured TTL. This caused entries to persist indefinitely, contrary to the expected behavior where such entries should expire after the TTL. The fix restores the correct behavior, ensuring that entries loaded from aMapLoader
respect the configured TTL and are evicted as expected. -
Fixed inconsistency between map.size() and map.keySet().size() when ExpirationPolicy throws an exception: Resolved an issue where a discrepancy could occur between
map.size()
andmap.keySet().size()
when anExpirationPolicy
threw an exception. This issue was triggered in scenarios where an index was defined for a non-existing field, causing an error during indexing without affecting the storage of entries. The fix ensures thatmap.size()
andmap.keySet().size()
remain consistent, even in cases where exceptions are thrown during expiration or indexing. -
Fixed exception when using CREATE MAPPING with SQL statement-timeout-millis configured: Resolved an issue where setting a non-zero value for
statement-timeout-millis
in the SQL configuration caused exceptions for statements that do not support timeouts, such asCREATE MAPPING
. Previously, executing such statements would result in a descriptive but unnecessary exception (CREATE MAPPING does not support timeout
), which could prevent client applications from starting ifCREATE MAPPING
was part of the initialization process. The fix ensures that non-timeout-supported statements likeCREATE MAPPING
succeed as expected, regardless of thestatement-timeout-millis
configuration. -
Fixed issue with hot backup failing after changing the backup folder during a rolling restart: Resolved an issue where hot backups would fail if the underlying backup folder was changed during a rolling restart and a hot backup was subsequently initiated from Management Center (MC). This fix ensures that hot backups function correctly even after the backup folder is updated during a rolling restart.
-
Fixed server exception caused by clients connecting to non-CP clusters with cp-direct-to-leader-routing enabled: Resolved an issue where a client connecting to a non-CP cluster with
cp-direct-to-leader-routing: true
would trigger an exception in the server logs after 60 seconds. The exception (HazelcastException: CP Subsystem is not enabled!
) caused unnecessary confusion for users. This fix ensures that clients withcp-direct-to-leader-routing
enabled no longer trigger server exceptions when connected to non-CP clusters. -
Improved client error message for unsupported CP subsystem in Community Edition clients: Resolved an issue where a Community Edition client attempting to interact with an Enterprise Edition cluster using the CP subsystem would produce a misleading error message: "CP subsystem is a licensed feature. Please ensure you have an Enterprise license that enables CP." The error incorrectly suggested a licensing issue with the cluster, rather than indicating the actual problem with the client. The fix updates the error message to clearly indicate that the issue lies with the client, helping users identify and resolve the problem of using an incompatible client package more easily.
-
Fixed misleading warning about enabling Merkle trees when already enabled: Resolved an issue where a warning was logged suggesting that Merkle trees should be enabled, even when they were already enabled. This issue caused unnecessary and confusing log messages. The fix ensures that the warning is not produced when Merkle trees are already enabled, improving clarity in the logs.
-
Fixed performance degradation for large input lengths in ByteArrayObjectDataOutput: Resolved an issue where providing an input length greater than
Integer.MAX_VALUE
/ 2 caused significant performance degradation (up to 100x). This was due to the buffer resizing in small increments instead of a single large increment, as the doubling strategy would overflow and result in a negative value. The fix ensures that in cases of overflow, the buffer length is set toMAX_ARRAY_SIZE
, which is approximately the largest supported array size in the JVM. -
Fixed issue with SSL property configuration using environment variables: Resolved an issue where SSL properties could not be configured through environment variables (e.g., in Docker) because all property keys were converted to lowercase during processing. This behavior, while appropriate for most configuration options, broke SSL functionality. The fix ensures that SSL properties are handled correctly, enabling proper SSL configuration through environment variables.
-
Fixed handling of DestroyQueryCacheOperation after cache configuration removal: Resolved an issue where calling
DestroyQueryCacheOperation
after a cache configuration was removed resulted in aNullPointerException
. The fix ensures that aNullPointerException
is no longer thrown in this scenario. Instead, the operation now handles the exception gracefully and logs a finest-level entry, improving robustness and debuggability of cache operations. -
Improved latency distribution tracking for InvocationProfiler and OperationProfiler: Enhanced the
InvocationProfiler
andOperationProfiler
DiagnosticPlugins to record latency distributions with finer granularity by distinguishing operations wrapped in theOperationFactoryWrapper
class. This improvement provides better visibility into cluster activity and helps diagnose performance issues more effectively. -
Fixed handling of expired entries when depopulating global indexes: Resolved an issue where expired entries were skipped during the cleanup of global indexes on migration source nodes. This caused query threads to encounter dangling pointers in the index, leading to JVM crashes. The fix ensures that expired entries are included when depopulating global indexes, preventing such crashes and improving system stability.