ISPN-2792 Allow logging at TRACE level for a single test in the test suite

Add a log4j filter that allows TRACE messages only if the thread name
matches a regular expression.

Also add a shutdown hook to CompressedFileAppender to make it more likely
that the log file is properly terminated.
ISPN-2790 ReplCommandForwardingTest fails most of the time in CI

Looks like joining the cluster can take more than 3 seconds in CI, so I
increased the timeouts to 15 seconds.
ISPN-2584 BackupReceiver survives cache shutdown
- on each cache.stop() the backup cache is removed from the backup receiver repository
Update to 5.2.2-SNAPSHOT
ISPN-2746 testDistributedPutWithTopologyChanges test randomly fails on all environments

The test wasn't properly waiting for the rebalance to end on the
servers before checking the topology id.
ISPN-2781 NPE in AbstractTopologyAwareEncoder1x

Copy the address cache into a regular map before generating the
topology response, to protect from changes from other threads.

Send "partial" topology responses even if not all CH members are
in the address cache. This allows the client to remove leaving
HotRod servers from its CH, even when one of the nodes doesn't
have a HotRod endpoint.
ISPN-2827 Don't cause an NPE when a JMX query returns no results
ISPN-2828 The locate command in the CLI supports session and
per-statement encoding of the key to calculate its location in the
cluster
ISPN-2817 Create a locate() API on the Java Hot Rod client
ISPN-2435 Cache#replace(key, old, new) method doesn't check old value on non-local invocations
Revert "ISPN-2817 Create a locate() API on the Java Hot Rod client"

This reverts commit 8fa1237642668514f82d9374620c02429696f7d4.
ISPN-2785 Complete the CLI server codecs implementations
ControlledCommandFactory.registerControlledCommandFactory() does not actually register the ControlledCommandFactory into the ComponentRegistry

The method is also duplicated into ControlledCommandFactory instead of being reused.
ISPN-2839 Method boolean Cache.replace(K key, V oldValue, V value) (and variants) should guard against null oldValue parameter

Add explicit null check and test case to cover it.
ISPN-2688 BaseDistributionInterceptor and TxDistributionInterceptor do not detect properly if the key needs to be fetched remotely

Fixes TxDistributionInterceptor by doing an extra local lookup if the value returned by method remoteGetAndStoreInL1() is null.
If there was a state transfer in progress at the time TxDistributionInterceptor tried to determine if it needs to go remotely or not the decision might be invalid now and the value might be available locally.
The non-tx case is differrently implemented and is not fixed. Added OperationsDuringStateTransferTest to highlight the issue.
Ensure ConditionalOperationsConcurrentTest worker threads stop at the end
of each test method.
ISPN-2789 OutOfMemoryError in case if LuceneCacheLoader.loadAll() is called
ISPN-2788 NullPointerException appears in case passing null as an exclusion list to LuceneCacheLoader.loadAllKeys()
Bump version to 5.2.3-SNAPSHOT
ISPN-2845 CLONE - ISPN000136: Execution error: java.lang.NullPointerException -> JBAS018079: Failed to passivate session

CacheImpl.evict() during a batch leads to NPE in AbstractTxInvocationContext.clearLockedKeys because no transaction is actually started. This is caused by BatchingInterceptor replacing the non-transactional context of the evict command with a new transactional context for no reason - evict() is never transactional.