Fixed - `RMap.getAll` throws ClassCastException during transaction execution #1798

pull/1827/head
Nikita Koksharov 6 years ago
parent 938a6255b2
commit 9bb32b4b2f

@ -699,7 +699,7 @@ public class BaseTransactionalMap<K, V> {
}
}
RFuture<Map<K, V>> future = ((RedissonMap<K, V>)map).getAllOperationAsync(keysToLoad);
RFuture<Map<K, V>> future = ((RedissonMap<K, V>)this.map).getAllOperationAsync(keysToLoad);
future.addListener(new FutureListener<Map<K, V>>() {
@Override
public void operationComplete(Future<Map<K, V>> future) throws Exception {

@ -2,7 +2,9 @@ package org.redisson.transaction;
import static org.assertj.core.api.Assertions.assertThat;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@ -45,6 +47,19 @@ public abstract class RedissonBaseTransactionalMapTest extends BaseTest {
assertThat(m.size()).isZero();
}
@Test
public void testGetAll() {
RMap<String, String> m = getMap();
m.put("1", "2");
m.put("3", "4");
RTransaction t = redisson.createTransaction(TransactionOptions.defaults());
RMap<String, String> map = getTransactionalMap(t);
assertThat(map.getAll(new HashSet<String>(Arrays.asList("1", "3"))).values()).containsOnly("2", "4");
t.commit();
}
@Test
public void testFastPut() throws InterruptedException {
ExecutorService executor = Executors.newFixedThreadPool(2000);

Loading…
Cancel
Save