This document lists the new features, enhancements, fixed issues and, removed or deprecated features for Hazelcast IMDG 4.2.5 release. The numbers in the square brackets refer to the issues in Hazelcast's GitHub repositories.

## Enhancements

* Introduced a system property for allowing you to audit that all the Hazelcast instances running in your
environment have the instance tracking file name set correctly in the configuration. See the note in Instance Tracking documentation. [#19929]
* Enabled XXE (XML External Entity Reference) protection for `XMLInputFactory`. The issue was reported through
https://huntr.dev/bounties/d63972a2-b910-480a-a86b-d1f75d24d563/. [#20942]
* The probe level for most of the network related statistics has been changed to "DEBUG" to decrease the pressure on Management Center; now they are not sent to Management Center by default. If you want to see these statistics, you need to set the "hazelcast.metrics.debug.enabled" property to "true. [#21275]

## Fixes

* Fixed an issue where the entry memory statistics of a map with an external data store (`MapStore`) were being calculated incorrectly for the following scenario:
  ** The map is backed by High-Density Memory Store, i.e., in-memory format is `NATIVE`.
  ** Map entries are evicted using `IMap.evict()` and then loaded using `loadAll()`.
  ** Map Statistics screen in Management Center shows increased memory usage which gives a false impression as if there is a memory leak.+
  #4649
* Fixed an issue where the statistics like puts and removals were not increasing when these operations are executed through Transactional interface. [#21105]
* Fixed an issue where Hazelcast clients, which have only the IP address of a member to connect (but the member also has a hostname), were not able to connect to the cluster. [#20631]
* Hazelcast’s memcached implementation was interpreting the number values and parameters for `incr` and `decr` wrongly (numbers were being converted into byte arrays instead of decimals).
This has been fixed by making these commands' implementations strictly follow the memcached protocol specification. [#19676]
* Fixed an issue where the `totalPublishes` statistics for the Reliable Topic data structure were always generated as `0`. [#19656]
* Fixed an issue where the `map.clear` and `cache.clear` methods were evicting all entries in all near caches of all the maps in a cluster, not only the map on which these methods are called. [#19501]
* Fixed an issue where map entries were never evicted or expired:
  ** Let's say you have a map whose entries have both time-to-live and maximum idle durations configured.
  ** You are periodically reading the entries at times shorter than these durations. 
  In this case, the entries were not evicted or expired according to their time-to-live or maximum idle duration configurations.
  You can set the `per-entry-stats-enabled` property to `true` to fix this.
  [#19483]

## Removed/Deprecated Features

The following system properties have been deprecated:

* `hazelcast.client.statistics.enabled`
* `hazelcast.client.statistics.period.seconds`
