RList.addAllAsync fixed

pull/297/head
Nikita 9 years ago
parent 2301b3f6ab
commit 97ac6b4faa

@ -167,19 +167,30 @@ public class RedissonList<V> extends RedissonExpirable implements RList<V> {
promise.setSuccess(false); promise.setSuccess(false);
return promise; return promise;
} }
final int listSize = size(); Future<Integer> sizeFuture = sizeAsync();
List<Object> args = new ArrayList<Object>(c.size() + 1); sizeFuture.addListener(new FutureListener<Integer>() {
args.add(getName());
args.addAll(c);
Future<Long> res = commandExecutor.writeAsync(getName(), codec, RPUSH, args.toArray());
res.addListener(new FutureListener<Long>() {
@Override @Override
public void operationComplete(Future<Long> future) throws Exception { public void operationComplete(Future<Integer> future) throws Exception {
if (future.isSuccess()) { if (!future.isSuccess()) {
promise.setSuccess(listSize != future.getNow());
} else {
promise.setFailure(future.cause()); promise.setFailure(future.cause());
return;
} }
final int listSize = future.getNow();
List<Object> args = new ArrayList<Object>(c.size() + 1);
args.add(getName());
args.addAll(c);
Future<Long> res = commandExecutor.writeAsync(getName(), codec, RPUSH, args.toArray());
res.addListener(new FutureListener<Long>() {
@Override
public void operationComplete(Future<Long> future) throws Exception {
if (future.isSuccess()) {
promise.setSuccess(listSize != future.getNow());
} else {
promise.setFailure(future.cause());
}
}
});
} }
}); });
return promise; return promise;

Loading…
Cancel
Save