From 7b6d50fd690ae9b99afc1ba4ff4a09f6ed944587 Mon Sep 17 00:00:00 2001 From: Nikita Date: Fri, 5 Feb 2016 16:52:38 +0300 Subject: [PATCH 1/4] RBatch comment added --- src/main/java/org/redisson/core/RBatch.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/redisson/core/RBatch.java b/src/main/java/org/redisson/core/RBatch.java index 2d2d6aa67..27b20e7e9 100644 --- a/src/main/java/org/redisson/core/RBatch.java +++ b/src/main/java/org/redisson/core/RBatch.java @@ -24,10 +24,12 @@ import io.netty.util.concurrent.Future; /** * Interface for using pipeline feature. - * + *

* All method invocations on objects * from this interface are batched to separate queue and could be executed later * with execute() or executeAsync() methods. + *

+ * Please be ware, atomicity is not guaranteed. * * * @author Nikita Koksharov From 1c0f006bd11a0b177c72486b10d2fea4ef5e7241 Mon Sep 17 00:00:00 2001 From: Nikita Date: Sat, 6 Feb 2016 12:36:05 +0300 Subject: [PATCH 2/4] Hamcrest classes removed from RedissonSetCacheTest --- .../org/redisson/RedissonSetCacheTest.java | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/src/test/java/org/redisson/RedissonSetCacheTest.java b/src/test/java/org/redisson/RedissonSetCacheTest.java index 1c1636f95..9e5532ab0 100644 --- a/src/test/java/org/redisson/RedissonSetCacheTest.java +++ b/src/test/java/org/redisson/RedissonSetCacheTest.java @@ -1,5 +1,7 @@ package org.redisson; +import static org.assertj.core.api.Assertions.assertThat; + import java.io.Serializable; import java.util.Arrays; import java.util.Collections; @@ -9,9 +11,6 @@ import java.util.Set; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; -import static org.assertj.core.api.Assertions.*; -import org.hamcrest.MatcherAssert; -import org.hamcrest.Matchers; import org.junit.Assert; import org.junit.Test; import org.redisson.codec.MsgPackJacksonCodec; @@ -46,11 +45,11 @@ public class RedissonSetCacheTest extends BaseTest { public void testAddExpire() throws InterruptedException, ExecutionException { RSetCache set = redisson.getSetCache("simple3"); set.add("123", 1, TimeUnit.SECONDS); - Assert.assertThat(set, Matchers.contains("123")); + assertThat(set).contains("123"); Thread.sleep(1000); - Assert.assertFalse(set.contains("123")); + assertThat(set).doesNotContain("123"); } @Test @@ -93,14 +92,14 @@ public class RedissonSetCacheTest extends BaseTest { Assert.assertTrue(set.remove(1)); Assert.assertFalse(set.contains(1)); - Assert.assertThat(set, Matchers.containsInAnyOrder(3, 7)); + assertThat(set).containsOnly(3, 7); Assert.assertFalse(set.remove(1)); - Assert.assertThat(set, Matchers.containsInAnyOrder(3, 7)); + assertThat(set).containsOnly(3, 7); Assert.assertTrue(set.remove(3)); Assert.assertFalse(set.contains(3)); - Assert.assertThat(set, Matchers.contains(7)); + assertThat(set).containsOnly(7); Assert.assertEquals(1, set.size()); } @@ -122,7 +121,7 @@ public class RedissonSetCacheTest extends BaseTest { } } - Assert.assertThat(set, Matchers.containsInAnyOrder("1", "3")); + assertThat(set).contains("1", "3"); int iteration = 0; for (Iterator iterator = set.iterator(); iterator.hasNext();) { @@ -172,7 +171,7 @@ public class RedissonSetCacheTest extends BaseTest { } Assert.assertTrue(set.retainAll(Arrays.asList(1, 2))); - Assert.assertThat(set, Matchers.containsInAnyOrder(1, 2)); + assertThat(set).containsOnly(1, 2); Assert.assertEquals(2, set.size()); } @@ -218,10 +217,10 @@ public class RedissonSetCacheTest extends BaseTest { Thread.sleep(1000); - MatcherAssert.assertThat(Arrays.asList(set.toArray()), Matchers.containsInAnyOrder("1", "4", "5", "3")); + assertThat(set.toArray()).containsOnly("1", "4", "5", "3"); String[] strs = set.toArray(new String[0]); - MatcherAssert.assertThat(Arrays.asList(strs), Matchers.containsInAnyOrder("1", "4", "5", "3")); + assertThat(strs).containsOnly("1", "4", "5", "3"); } @Test @@ -300,7 +299,7 @@ public class RedissonSetCacheTest extends BaseTest { set.add(2); Assert.assertFalse(set.retainAll(Arrays.asList(1, 2))); // nothing changed - Assert.assertThat(set, Matchers.containsInAnyOrder(1, 2)); + assertThat(set).containsOnly(1, 2); } @Test @@ -314,7 +313,7 @@ public class RedissonSetCacheTest extends BaseTest { Thread.sleep(1000); - MatcherAssert.assertThat(cache, Matchers.contains("0", "2", "3")); + assertThat(cache).contains("0", "2", "3"); } @Test From 1a646d29a5f810dd4972fd8435615e46ed07a771 Mon Sep 17 00:00:00 2001 From: Nikita Date: Sat, 6 Feb 2016 12:40:39 +0300 Subject: [PATCH 3/4] hamcrest imports removed from RedissonSetTest --- .../java/org/redisson/RedissonSetTest.java | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/test/java/org/redisson/RedissonSetTest.java b/src/test/java/org/redisson/RedissonSetTest.java index 648ea7586..5953c339a 100644 --- a/src/test/java/org/redisson/RedissonSetTest.java +++ b/src/test/java/org/redisson/RedissonSetTest.java @@ -1,5 +1,7 @@ package org.redisson; +import static org.assertj.core.api.Assertions.assertThat; + import java.io.Serializable; import java.util.Arrays; import java.util.Collections; @@ -8,8 +10,6 @@ import java.util.Iterator; import java.util.Set; import java.util.concurrent.ExecutionException; -import org.hamcrest.MatcherAssert; -import org.hamcrest.Matchers; import org.junit.Assert; import org.junit.Test; import org.redisson.core.RSet; @@ -39,10 +39,10 @@ public class RedissonSetTest extends BaseTest { set.add(2); set.add(3); - MatcherAssert.assertThat(set.removeRandom(), Matchers.isOneOf(1, 2, 3)); - MatcherAssert.assertThat(set.removeRandom(), Matchers.isOneOf(1, 2, 3)); - MatcherAssert.assertThat(set.removeRandom(), Matchers.isOneOf(1, 2, 3)); - Assert.assertNull(set.removeRandom()); + assertThat(set.removeRandom()).isIn(1, 2, 3); + assertThat(set.removeRandom()).isIn(1, 2, 3); + assertThat(set.removeRandom()).isIn(1, 2, 3); + assertThat(set.removeRandom()).isNull(); } @Test @@ -90,14 +90,14 @@ public class RedissonSetTest extends BaseTest { Assert.assertTrue(set.removeAsync(1).get()); Assert.assertFalse(set.contains(1)); - Assert.assertThat(set, Matchers.containsInAnyOrder(3, 7)); + assertThat(set).containsOnly(3, 7); Assert.assertFalse(set.removeAsync(1).get()); - Assert.assertThat(set, Matchers.containsInAnyOrder(3, 7)); + assertThat(set).containsOnly(3, 7); set.removeAsync(3).get(); Assert.assertFalse(set.contains(3)); - Assert.assertThat(set, Matchers.contains(7)); + assertThat(set).contains(7); } @Test @@ -116,7 +116,7 @@ public class RedissonSetTest extends BaseTest { } } - Assert.assertThat(list, Matchers.containsInAnyOrder("1", "4", "5", "3")); + assertThat(list).containsOnly("1", "4", "5", "3"); int iteration = 0; for (Iterator iterator = list.iterator(); iterator.hasNext();) { @@ -163,7 +163,7 @@ public class RedissonSetTest extends BaseTest { set.add(1L); set.add(2L); - Assert.assertThat(set, Matchers.containsInAnyOrder(1L, 2L)); + assertThat(set).containsOnly(1L, 2L); } @Test @@ -174,7 +174,7 @@ public class RedissonSetTest extends BaseTest { } Assert.assertTrue(set.retainAll(Arrays.asList(1, 2))); - Assert.assertThat(set, Matchers.containsInAnyOrder(1, 2)); + assertThat(set).containsOnly(1, 2); Assert.assertEquals(2, set.size()); } @@ -217,10 +217,10 @@ public class RedissonSetTest extends BaseTest { set.add("5"); set.add("3"); - MatcherAssert.assertThat(Arrays.asList(set.toArray()), Matchers.containsInAnyOrder("1", "2", "4", "5", "3")); + assertThat(set.toArray()).containsOnly("1", "2", "4", "5", "3"); String[] strs = set.toArray(new String[0]); - MatcherAssert.assertThat(Arrays.asList(strs), Matchers.containsInAnyOrder("1", "4", "2", "5", "3")); + assertThat(strs).containsOnly("1", "2", "4", "5", "3"); } @Test @@ -286,7 +286,7 @@ public class RedissonSetTest extends BaseTest { set.add(2); Assert.assertFalse(set.retainAll(Arrays.asList(1, 2))); // nothing changed - Assert.assertThat(set, Matchers.containsInAnyOrder(1, 2)); + assertThat(set).containsOnly(1, 2); } @Test @@ -300,10 +300,10 @@ public class RedissonSetTest extends BaseTest { Assert.assertTrue(set.move("otherSet", 1)); Assert.assertEquals(1, set.size()); - Assert.assertThat(set, Matchers.contains(2)); + assertThat(set).contains(2); Assert.assertEquals(1, otherSet.size()); - Assert.assertThat(otherSet, Matchers.contains(1)); + assertThat(otherSet).contains(1); } @Test From 25ed6d59bbe26363dd1f9e37739d0b45944d6b63 Mon Sep 17 00:00:00 2001 From: Nikita Date: Sun, 7 Feb 2016 13:45:02 +0300 Subject: [PATCH 4/4] Script error fixed during RSetCache.toArray or RSetCache.readAll invocation. --- src/main/java/org/redisson/RedissonSetCache.java | 14 ++++++++++---- .../java/org/redisson/RedissonSetCacheTest.java | 6 ++++++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/redisson/RedissonSetCache.java b/src/main/java/org/redisson/RedissonSetCache.java index ecc358281..42726bafb 100644 --- a/src/main/java/org/redisson/RedissonSetCache.java +++ b/src/main/java/org/redisson/RedissonSetCache.java @@ -230,7 +230,10 @@ public class RedissonSetCache extends RedissonExpirable implements RSetCache< public Future> readAllAsync() { return commandExecutor.evalReadAsync(getName(), codec, RedisCommands.EVAL_SET, "local expireHead = redis.call('zrange', KEYS[2], 0, 0, 'withscores');" + - "local keys = redis.call('hkeys', KEYS[1]);" + + "local keys = redis.call('hkeys', KEYS[1]); " + + "if #keys == 0 then " + + "return {}; " + + "end; " + "local maxDate = ARGV[1]; " + "local minExpireDate = 92233720368547758;" + "if #expireHead == 2 and tonumber(expireHead[2]) <= tonumber(maxDate) then " + @@ -250,7 +253,10 @@ public class RedissonSetCache extends RedissonExpirable implements RSetCache< private Future> readAllasListAsync() { return commandExecutor.evalReadAsync(getName(), codec, RedisCommands.EVAL_LIST, "local expireHead = redis.call('zrange', KEYS[2], 0, 0, 'withscores');" + - "local keys = redis.call('hkeys', KEYS[1]);" + + "local keys = redis.call('hkeys', KEYS[1]); " + + "if #keys == 0 then " + + "return {}; " + + "end; " + "local maxDate = ARGV[1]; " + "local minExpireDate = 92233720368547758;" + "if #expireHead == 2 and tonumber(expireHead[2]) <= tonumber(maxDate) then " + @@ -310,8 +316,8 @@ public class RedissonSetCache extends RedissonExpirable implements RSetCache< return commandExecutor.evalWriteAsync(getName(), codec, RedisCommands.EVAL_BOOLEAN, "redis.call('zadd', KEYS[2], ARGV[1], ARGV[3]); " + "if redis.call('hexists', KEYS[1], ARGV[3]) == 0 then " + - "redis.call('hset', KEYS[1], ARGV[3], ARGV[2]); " + - "return 1; " + + "redis.call('hset', KEYS[1], ARGV[3], ARGV[2]); " + + "return 1; " + "end;" + "return 0; ", Arrays.asList(getName(), getTimeoutSetName()), timeoutDate, objectState, key); diff --git a/src/test/java/org/redisson/RedissonSetCacheTest.java b/src/test/java/org/redisson/RedissonSetCacheTest.java index 9e5532ab0..69acd3519 100644 --- a/src/test/java/org/redisson/RedissonSetCacheTest.java +++ b/src/test/java/org/redisson/RedissonSetCacheTest.java @@ -32,6 +32,12 @@ public class RedissonSetCacheTest extends BaseTest { } + @Test + public void testEmptyReadAll() { + RSetCache set = redisson.getSetCache("set"); + assertThat(set.readAll()).isEmpty(); + } + @Test public void testAddBean() throws InterruptedException, ExecutionException { SimpleBean sb = new SimpleBean();