…ly during rehashing StateConsumerImpl.cancelTransfers(..) was ignoring the currently iterated segment.
* Add InboundTransferTask.awaitCompletion() to be able to detect when all segments from a source were completely received * StateConsumerImpl.applyState processes all the received chunks at once * StateConsumerImpl.onTopologyUpdate() no longer creates InboundTransferTasks if cache is not transactional and fetching of in-memory state is not enabled. These were previosly created only to be removed. * StateConsumerImpl.addTransfers() is split into separate methods for fetching transactions and segments * StateConsumerImpl requests transactions serially from neighbours and then notifies that transaction data was received without waiting for the segments to be requested. A separate task is spawned to request transactions serially from neighbours.
Before the fix is was possible that the generated name contained non-printable characters. The current implementation uses multiple letters if the index is higher than 'Z'.
* The test used to pass due to lack of clearing between test methods and in fact even in older releases, if you run the test method individually, it would fail. So, the test was passing due to the effect of other test methods. * The test has now been changed with the correct expectations.
classloader when invoking listeners
…e hidden by delegates
…synchronous New test for command forwarding, both for transactional and non-transactional caches (but only in repl mode).
The topologyId field was initialized with 0, so RpcManagerImpl wasn't setting the correct value.
- unit tests + fix
…ckaged in the jars and those that should be part of the distribution release only
Use the read consistent hash for generating the header. The write consistent hash might have too many owners for a segment, causing an IndexOutOfBoundsException.
Change TestingUtil.waitForRehashToComplete to wait for all the nodes to finish the rebalance. (Particularly to remove the entries that they no longer own.)
Synchronize on the cache status object while broadcasting the CH_UPDATE command, thus ensuring the CH_UPDATE/REBALANCE_START commands arrive in the right sequence on all the nodes.
Exceptions are not handled properly when requesting transactions/data, and because of this it's possible to "half-add" a segment.