3.6 Fixes
The following are the issues solved for Hazelcast 3.6 release.
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]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]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]ClientExceptionFactory which has been developed for exception processing and working well in that sense. [6010]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]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] 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]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]IndexImpl.getRecords() fails with Null Pointer Exception due to the inconsistency between the not(...equals()) and notEquals(). [5807]HazelcastHttpSession.getAttribute() for WebFilter does not work when deferredWrite is set to true. [5798]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]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]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]UnsupportedOperationException. [5562]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]NullPointerException is thrown after the cluster is reset. [175]putAll() method is used [159]