From b869bc7136cfcebb608c8aff6030051ebbc60513 Mon Sep 17 00:00:00 2001 From: Costin Leau Date: Tue, 5 Feb 2013 18:32:04 +0200 Subject: [PATCH] add warning regarding RedisTemplate initialization DATAREDIS-112 --- .../org/springframework/data/redis/core/RedisTemplate.java | 7 +++++++ .../org/springframework/data/redis/core/TemplateTest.java | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/src/main/java/org/springframework/data/redis/core/RedisTemplate.java b/src/main/java/org/springframework/data/redis/core/RedisTemplate.java index d5b139c8d..eabdf1a0c 100644 --- a/src/main/java/org/springframework/data/redis/core/RedisTemplate.java +++ b/src/main/java/org/springframework/data/redis/core/RedisTemplate.java @@ -66,6 +66,7 @@ import org.springframework.util.ClassUtils; public class RedisTemplate extends RedisAccessor implements RedisOperations { private boolean exposeConnection = false; + private boolean initialized = false; private RedisSerializer defaultSerializer = new JdkSerializationRedisSerializer(); private RedisSerializer keySerializer = null; @@ -114,6 +115,8 @@ public class RedisTemplate extends RedisAccessor implements RedisOperation if (defaultUsed) { Assert.notNull(defaultSerializer, "default serializer null and not all serializers initialized"); } + + initialized = true; } @@ -144,6 +147,7 @@ public class RedisTemplate extends RedisAccessor implements RedisOperation * @return object returned by the action */ public T execute(RedisCallback action, boolean exposeConnection, boolean pipeline) { + Assert.isTrue(initialized, "template not initialized; call afterPropertiesSet() before using it"); Assert.notNull(action, "Callback object must not be null"); RedisConnectionFactory factory = getConnectionFactory(); @@ -177,6 +181,9 @@ public class RedisTemplate extends RedisAccessor implements RedisOperation public T execute(SessionCallback session) { + Assert.isTrue(initialized, "template not initialized; call afterPropertiesSet() before using it"); + Assert.notNull(session, "Callback object must not be null"); + RedisConnectionFactory factory = getConnectionFactory(); // bind connection RedisConnectionUtils.bindConnection(factory); diff --git a/src/test/java/org/springframework/data/redis/core/TemplateTest.java b/src/test/java/org/springframework/data/redis/core/TemplateTest.java index 273af09cc..64b5de2d9 100644 --- a/src/test/java/org/springframework/data/redis/core/TemplateTest.java +++ b/src/test/java/org/springframework/data/redis/core/TemplateTest.java @@ -57,6 +57,13 @@ public class TemplateTest { return CollectionTestParams.testParams(); } + @Test(expected = IllegalArgumentException.class) + public void testTemplateNotInitialized() throws Exception { + RedisTemplate tpl = new RedisTemplate(); + tpl.setConnectionFactory(template.getConnectionFactory()); + tpl.exec(); + } + @Test public void testKeys() throws Exception { assertTrue(template.keys("*") != null);