Fixes

3.6 Fixes

The following are the issues solved for Hazelcast 3.6 release.

  • There is a growth in heap usage caused by a memory leak in the following scenario: A node in the cluster regularly creates maps and puts entries into it, again in regular intervals. Another node removes the entries minutes after they were put, and if the map is empty, it destroys the map. [6317]
  • Currently, there is an EntryEvictedListener that is notified both for expiration and eviction events. There should be a separate listener for expired entries: eviction happens due to size constraints, and expiry is once the entry has expired. [6311]
  • InvocationFutures async calls do not detect the lost operations. [6250]
  • When the method setBooleanAttribute of the class Member is run, Null Pointer Exception is occurred on STDOUT. The problem is in the method sendMemberAttributeEvent of the class ClusterServiceImpl. [6223]
  • IOBalancer keeps references of all the socket reader/writers but when destroying the connection, they release the references for only the ones which has endpoints. This causes a memory leak. [6199]
  • ILIKE and Regex examples should be added to the Reference Manual under the "Supported SQL Syntax" section. [6190]
  • GroupProperty defaulting does not work properly when programmatic configuration is used. [6174]
  • When integrating Hazelcast in Spring Boot: if HazelcastInstance is created using the default newHazelcastInstance static method, then an HazelcastInstance whose Config has a valid configurationUrl property is created. However, XmlBuilder does not set this URL in the configuration it parses. [6061]
  • Hazelcast's latest snapshot run fails due to the introduction of ClientExceptionFactory which has been developed for exception processing and working well in that sense. [6010]
  • The class HazelcastXATest has only fast and slow modes (nothing in between) and possibly due to this, sometimes a transaction is waiting for a timeout. Either the transaction recovery or the test class itself is racy. [5923]
  • A memory leak occurs when a listener is added and removed from client. A "remove" runnable in the collection that is stored in ClientEndpointImpl is the leftover. This runnable collection is used to cleanup the listeners when client is disconnected, it should be removed too after the listener is removed. [5893]
  • The class CacheRemoveAllOperation does not send the "completed" event in some cases, e.g. if CacheRecordStore for that partition is not created yet or if the filtered keys are empty. [5865]
  • In the class MapProxyImpl, the methods executeOnKey and submitToKey create an EntryOperation with the thread ID set. This does not happen with the class ClientMapProxy. Therefore, the class MapExecuteOnKeyRequest should take a thread ID and set this on the generated EntryOperation. [5857]
  • The method IndexImpl.getRecords() fails with Null Pointer Exception due to the inconsistency between the not(...equals()) and notEquals(). [5807]
  • The method HazelcastHttpSession.getAttribute() for WebFilter does not work when deferredWrite is set to true. [5798]
  • When hazelcast.nio.faststring is enabled, UTFEncoderDecoder tries to create a FastStringCreator. However, if the reflection is not available due to the security manager, buildFastStringCreator returns null and consequently StringCreator becomes null. [5777]
  • hazelcast-jca-rar/pom.xml references to src/main/rar/ra.xml which does not exist. [5760]
  • The Maven profile mvn clean compile -Pqa does not exist but it is documented in the README of Hazelcast. [5746]
  • PerformanceLogFile only compiles if JDK 1.7 or above is used. [5729]
  • Currently, for every deserialization a BufferObjectDataInput is created. This generates waste since it is created with an array of data for every deserialization. The BufferObjectDataOutput is already cached; the input should use a similar approach. [5562]
  • When any entities are defined as read only in the Hibernate L2 cache, an invalidation of the cache (such as caused by executing a native SQLQuery) leads to the error UnsupportedOperationException. [5562]
  • The performance impacts of TWO_PHASE and LOCAL transaction types should be documented. [5075]
  • Client requests are very inefficient when determining the partition ID. [4940]
  • The method keySet() relies on QueryOperation. The QueryOperation does not accept IterationType - it always returns both keys and values. This can lead to unnecessary load and potentially even an OOM exception. [4642]
  • Hazelcast is stuck in TIMED_WAITING when used as 2nd level cache for Hibernate. [4406]
  • Management Center license loading problem when REST API is used. [189]
  • Executor monitoring in Management Center does not show the "cancelled" operations" [177]
  • When an alert for a data structure (map, queue, etc.) with its specific name is created, a NullPointerException is thrown after the cluster is reset. [175]
  • Default directory name is hardcoded as "mancenter3.5" and it needs to be maintained for every major release. This process should be dynamic. [174]
  • Throughput statistics for Map shows nothing when the putAll() method is used [159]