diff --git a/pom.xml b/pom.xml
index 281705c37..eb5622e21 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,6 +28,7 @@
2.8.0
0.7
06052013
+ 1.01
@@ -181,6 +182,13 @@
${xstream}
test
+
+
+ edu.umd.cs.mtc
+ multithreadedtc
+ ${multithreadedtc}
+ test
+
diff --git a/src/test/java/org/springframework/data/redis/cache/RedisCacheTest.java b/src/test/java/org/springframework/data/redis/cache/RedisCacheTest.java
index 78c6cee49..b8824b8c6 100644
--- a/src/test/java/org/springframework/data/redis/cache/RedisCacheTest.java
+++ b/src/test/java/org/springframework/data/redis/cache/RedisCacheTest.java
@@ -16,6 +16,7 @@
package org.springframework.data.redis.cache;
+import static org.hamcrest.core.Is.is;
import static org.hamcrest.core.IsEqual.*;
import static org.hamcrest.core.IsInstanceOf.*;
import static org.hamcrest.core.IsNot.*;
@@ -26,14 +27,13 @@ import static org.junit.Assume.*;
import static org.springframework.data.redis.matcher.RedisTestMatchers.*;
import java.util.Collection;
-import java.util.List;
import java.util.concurrent.Callable;
-import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.atomic.AtomicLong;
+import edu.umd.cs.mtc.MultithreadedTestCase;
+import edu.umd.cs.mtc.TestFramework;
import org.hamcrest.core.IsEqual;
import org.junit.AfterClass;
import org.junit.Before;
@@ -44,8 +44,8 @@ import org.junit.runners.Parameterized.Parameters;
import org.springframework.cache.Cache;
import org.springframework.cache.Cache.ValueWrapper;
import org.springframework.data.redis.ConnectionFactoryTracker;
-import org.springframework.data.redis.LongObjectFactory;
import org.springframework.data.redis.ObjectFactory;
+import org.springframework.data.redis.StringObjectFactory;
import org.springframework.data.redis.core.AbstractOperationsTestParams;
import org.springframework.data.redis.core.RedisTemplate;
@@ -53,6 +53,7 @@ import org.springframework.data.redis.core.RedisTemplate;
* @author Costin Leau
* @author Jennifer Hickey
* @author Christoph Strobl
+ * @author Mark Paluch
*/
@SuppressWarnings("rawtypes")
@RunWith(Parameterized.class)
@@ -283,50 +284,66 @@ public class RedisCacheTest extends AbstractNativeCacheTest {
/**
* @see DATAREDIS-443
+ * @see DATAREDIS-452
*/
@Test
- public void testCacheGetSynchronized() throws InterruptedException {
+ public void testCacheGetSynchronized() throws Throwable {
assumeThat(cache, instanceOf(RedisCache.class));
- assumeThat(valueFactory, instanceOf(LongObjectFactory.class));
+ assumeThat(valueFactory, instanceOf(StringObjectFactory.class));
- int threadCount = 10;
- final AtomicLong counter = new AtomicLong();
- final List