diff --git a/src/main/java/org/redisson/RedissonList.java b/src/main/java/org/redisson/RedissonList.java index d34274fe7..446db018d 100644 --- a/src/main/java/org/redisson/RedissonList.java +++ b/src/main/java/org/redisson/RedissonList.java @@ -116,7 +116,7 @@ public class RedissonList extends RedissonExpirable implements RList { @Override public boolean containsAll(Collection c) { - if (isEmpty()) { + if (isEmpty() || c.isEmpty()) { return false; } @@ -144,6 +144,9 @@ public class RedissonList extends RedissonExpirable implements RList { @Override public boolean addAll(final Collection c) { + if (c.isEmpty()) { + return false; + } connectionManager.write(getName(), new ResultOperation() { @Override protected Future execute(RedisAsyncConnection async) { @@ -156,6 +159,9 @@ public class RedissonList extends RedissonExpirable implements RList { @Override public boolean addAll(final int index, final Collection coll) { checkPosition(index); + if (coll.isEmpty()) { + return false; + } if (index < size()) { return connectionManager.write(getName(), new SyncOperation() { @Override @@ -191,6 +197,10 @@ public class RedissonList extends RedissonExpirable implements RList { @Override public boolean removeAll(final Collection c) { + if (c.isEmpty()) { + return false; + } + return connectionManager.write(getName(), new SyncOperation() { @Override public Boolean execute(RedisConnection conn) { @@ -209,6 +219,10 @@ public class RedissonList extends RedissonExpirable implements RList { @Override public boolean retainAll(Collection c) { + if (c.isEmpty()) { + return false; + } + boolean changed = false; for (Iterator iterator = iterator(); iterator.hasNext();) { V object = iterator.next(); diff --git a/src/main/java/org/redisson/RedissonSet.java b/src/main/java/org/redisson/RedissonSet.java index c56d758a2..40b660146 100644 --- a/src/main/java/org/redisson/RedissonSet.java +++ b/src/main/java/org/redisson/RedissonSet.java @@ -204,6 +204,10 @@ public class RedissonSet extends RedissonExpirable implements RSet { @Override public boolean addAll(final Collection c) { + if (c.isEmpty()) { + return false; + } + Long res = connectionManager.write(getName(), new ResultOperation() { @Override public Future execute(RedisAsyncConnection async) { @@ -215,6 +219,10 @@ public class RedissonSet extends RedissonExpirable implements RSet { @Override public boolean retainAll(Collection c) { + if (c.isEmpty()) { + return false; + } + boolean changed = false; for (Object object : this) { if (!c.contains(object)) { @@ -227,6 +235,10 @@ public class RedissonSet extends RedissonExpirable implements RSet { @Override public boolean removeAll(final Collection c) { + if (c.isEmpty()) { + return false; + } + Long res = connectionManager.write(getName(), new ResultOperation() { @Override public Future execute(RedisAsyncConnection async) {