diff --git a/.classpath b/.classpath
index 0f572491b..b33282f16 100644
--- a/.classpath
+++ b/.classpath
@@ -6,24 +6,25 @@
+
-
+
-
-
-
+
+
+
@@ -32,7 +33,6 @@
-
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index 5a9d4ae41..7c97b8901 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -1,12 +1,13 @@
-#Wed Oct 12 13:47:40 EEST 2011
+#
+#Wed Oct 19 16:15:43 EEST 2011
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.source=1.5
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
diff --git a/docs/src/info/changelog.txt b/docs/src/info/changelog.txt
index 4ed35efb8..ac896060e 100644
--- a/docs/src/info/changelog.txt
+++ b/docs/src/info/changelog.txt
@@ -3,9 +3,25 @@ SPRING DATA REDIS INTEGRATION CHANGELOG
http://www.springsource.org/spring-data
-Changes in version 1.0.0.RC1 (2011-mm-dd)
+Changes in version 1.0.0.RC1 (2011-10-19)
----------------------------------------
+General
+* Upgraded to Spring Framework 3.1 RC1
+* Upgraded slfj, Jackson libraries
+* Changed compile source/target compatibility to JDK 1.5
+
+Package o.s.d.redis.connection
+* Added equals/hashCode/compareTo methods to TypedTuple
+
+Package o.s.d.redis.core
+* Fixed potential bug in RedisTemplate#sort
+* Added equals/hashCode/compareTo methods to TypedTuple
+
+Package o.s.d.redis.support
+* Fixed potential bug in RedisProperties
+* Improved Redis cache implementation under heavy concurrent access
+
Changes in version 1.0.0.M4 (2011-07-18)
----------------------------------------
diff --git a/gradle.properties b/gradle.properties
index 03ed0c1af..343d34c93 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -2,11 +2,11 @@
# Logging
log4jVersion = 1.2.16
-slf4jVersion = 1.6.1
+slf4jVersion = 1.6.3
# Common libraries
springVersion = 3.1.0.RC1
-jacksonVersion = 1.8.3
+jacksonVersion = 1.8.5
# Testing
junitVersion = 4.8.1
diff --git a/src/main/java/org/springframework/data/redis/support/collections/DefaultRedisMap.java b/src/main/java/org/springframework/data/redis/support/collections/DefaultRedisMap.java
index 0e18b90ab..dfc57cfb0 100644
--- a/src/main/java/org/springframework/data/redis/support/collections/DefaultRedisMap.java
+++ b/src/main/java/org/springframework/data/redis/support/collections/DefaultRedisMap.java
@@ -30,7 +30,10 @@ import org.springframework.data.redis.core.RedisOperations;
/**
* Default implementation for {@link RedisMap}.
- *
+ *
+ * Note that the current implementation doesn't provide the same locking semantics across all methods.
+ * In highly concurrent environments, race conditions might appear.
+ *
* @author Costin Leau
*/
public class DefaultRedisMap implements RedisMap {
@@ -196,7 +199,7 @@ public class DefaultRedisMap implements RedisMap {
@Override
public V putIfAbsent(K key, V value) {
- throw new UnsupportedOperationException();
+ return (hashOps.putIfAbsent(key, value) ? null : get(key));
// RedisOperations ops = hashOps.getOperations();
//
diff --git a/src/main/java/org/springframework/data/redis/support/collections/RedisProperties.java b/src/main/java/org/springframework/data/redis/support/collections/RedisProperties.java
index 8542dbb2c..bde029c84 100644
--- a/src/main/java/org/springframework/data/redis/support/collections/RedisProperties.java
+++ b/src/main/java/org/springframework/data/redis/support/collections/RedisProperties.java
@@ -252,7 +252,7 @@ public class RedisProperties extends Properties implements RedisMap