Fixes

The following are the issues solved for Hazelcast 3.6 release.

3.6-EA2 Fixes

  • MapLoader may insert null values into IMap causing memory leak. [6830]
  • When replicated map entries are migrated to a new destination; TTL eviction should be scheduled, eviction should be retried when a failure caused by the migration happens and the sync interval should be increased. [6799]
  • There is a logical error in the method Ringbuffer.readManyAsync() when minSize = 0. In this case, the Ringbuffer is not read and nothing is returned. [6787]
  • When a listener's registration is made from the listener configuration, an error occurs during the listener initialization. [6784]
  • Remaining cache invalidation messages should be flushed on the ICacheService while the member is in the SHUTTING_DOWN state. [6778]
  • When a client cannot send a request to one of the connections, TargetNotMemberException is thrown. This name is confusing the Hazelcast users. [6766]
  • ClassCastException is thrown when using Timestamp within DataSerializable. [6759]
  • The method destroyDistributedObject() of ReplicatedMapService iterates over partition containers and record stores and destroys them. While destroying, record store calls destroyDistributedObject() which leads to an infinite loop. [6754]
  • Hazelcast does not inject its instance into HazelcastInstanceAware registered via classname. [6697]
  • There is a sporadic startup failure in 3.6-EA. [6684]
  • There is no need to use CacheLoader inside the client/server side cache proxies. [6676]
  • Fixed wrong calculation of eviction removal size when PER_NODE max-size policy is used. [6675]
  • If the cluster state is not active RepartitioningTask should not be triggered. Otherwise, it causes infinite retries and prevents the member from shtutdown. [6663]
  • There are broken XML configuration tests in the Hazelcast client package. [6633]
  • There is a memory leak since the method publishBathcedEvents does not remove the events from batchEvent. [6618]
  • Custom credentials class is not de-serialized on the server side. [6615]
  • Lite member element should be added to the Hazelcast Spring configuration. [6605]
  • EntryListener shows the unprocessed value in combination with PostProcessingMapStore. [6588]
  • Clients cannot submit HazelcastInstanceAware callables. [6570]

3.6-EA1 Fixes

  • The method map.size() waits indefinitely after the shutdown of a node. [6538]
  • HazelcastCachingProvider does not use the specified instance (by the object) when instance-name is not specified. [6454]
  • onExecutionFailure should be called before returning from run, if backup is not valid. [6420]
  • OperationThread.priorityPendingCount() should return scheduleQueue.prioritySize() instead of scheduleQueue.normalSize(). [6318]
  • 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]