Fixed - transactional RMap.fastRemove() method throws UnsupportedOperationException. #5131

pull/5153/head
Nikita Koksharov 2 years ago
parent 9120ccecb5
commit 2666ed255a

@ -469,7 +469,7 @@ public class BaseTransactionalMap<K, V> extends BaseTransactionalObject {
List<RLock> locks = Arrays.stream(keys).map(k -> getLock(k)).collect(Collectors.toList());
return executeLocked(timeout, () -> {
AtomicLong counter = new AtomicLong();
List<K> keyList = Arrays.asList(keys);
List<K> keyList = new ArrayList<>(Arrays.asList(keys));
for (Iterator<K> iterator = keyList.iterator(); iterator.hasNext();) {
K key = iterator.next();
HashValue keyHash = toKeyHash(key);

@ -216,6 +216,15 @@ public abstract class RedissonBaseTransactionalMapTest extends BaseTest {
assertThat(m.get("5")).isEqualTo("8");
}
@Test
public void testFastRemove() {
RTransaction transaction = redisson.createTransaction(TransactionOptions.defaults());
RMap<String, String> map = getTransactionalMap(transaction);
assertThat(map.fastPut("1", "2")).isTrue();
assertThat(map.fastRemove("1")).isEqualTo(1);
transaction.commit();
assertThat(redisson.getKeys().count()).isZero();
}
@Test
public void testRemove() {

Loading…
Cancel
Save