diff --git a/README.md b/README.md
index 73048a7bd..f2f4b4b3a 100644
--- a/README.md
+++ b/README.md
@@ -54,6 +54,11 @@ Recent Releases
================================
####Please Note: trunk is current development branch.
+####22-Jul-2015 - version 1.3.1 released
+Fixed - requests state sync during shutdown
+Fixed - netty-transport-native-epoll is now has a provided scope
+Fixed - NPE during `BlockingQueue.poll` invocation
+
####04-Jul-2015 - version 1.3.0 released
Feature - `RQueue.pollLastAndOfferFirstTo` method added
Feature - `RObject.rename`, `RObject.renameAsync`, `RObject.renamenx`, `RObject.renamenxAsync` methods added
diff --git a/pom.xml b/pom.xml
index 4d574e84d..59001cd4e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
org.redisson
redisson
- 1.3.1-SNAPSHOT
+ 1.3.2-SNAPSHOT
bundle
Redisson
@@ -93,6 +93,7 @@
io.netty
netty-transport-native-epoll
4.0.28.Final
+ provided
io.netty
@@ -196,7 +197,7 @@
org.apache.maven.plugins
maven-pmd-plugin
- 3.0.1
+ 3.5
verify
@@ -217,7 +218,7 @@
org.apache.maven.plugins
maven-checkstyle-plugin
- 2.10
+ 2.15
verify
@@ -227,7 +228,6 @@
- src/main/java/org/redisson/
true
false
/checkstyle.xml
diff --git a/src/main/java/org/redisson/BaseConfig.java b/src/main/java/org/redisson/BaseConfig.java
index 3e2d52635..6bb24f9c6 100644
--- a/src/main/java/org/redisson/BaseConfig.java
+++ b/src/main/java/org/redisson/BaseConfig.java
@@ -59,6 +59,7 @@ class BaseConfig> {
setRetryInterval(config.getRetryInterval());
setDatabase(config.getDatabase());
setTimeout(config.getTimeout());
+ setClientName(config.getClientName());
}
/**
diff --git a/src/main/java/org/redisson/CommandBatchExecutorService.java b/src/main/java/org/redisson/CommandBatchExecutorService.java
index f351c087f..eca3752e3 100644
--- a/src/main/java/org/redisson/CommandBatchExecutorService.java
+++ b/src/main/java/org/redisson/CommandBatchExecutorService.java
@@ -111,6 +111,15 @@ public class CommandBatchExecutorService extends CommandExecutorService {
if (executed) {
throw new IllegalStateException("Batch already executed!");
}
+ if (!connectionManager.getShutdownLatch().acquireAmount(commands.size())) {
+ IllegalStateException fail = new IllegalStateException("Redisson is shutdown");
+ for (Entry e : commands.values()) {
+ for (CommandEntry entry : e.getCommands()) {
+ entry.getCommand().getPromise().setFailure(fail);
+ }
+ }
+ return connectionManager.getGroup().next().newFailedFuture(fail);
+ }
if (commands.isEmpty()) {
return connectionManager.getGroup().next().newSucceededFuture(null);
diff --git a/src/main/java/org/redisson/CommandExecutorService.java b/src/main/java/org/redisson/CommandExecutorService.java
index 840d2b0e9..d4a3913a5 100644
--- a/src/main/java/org/redisson/CommandExecutorService.java
+++ b/src/main/java/org/redisson/CommandExecutorService.java
@@ -157,6 +157,10 @@ public class CommandExecutorService implements CommandExecutor {
}
private R async(boolean readOnlyMode, int slot, SyncOperation operation, int attempt) {
+ if (!connectionManager.getShutdownLatch().acquire()) {
+ return null;
+ }
+
try {
RedisConnection connection;
if (readOnlyMode) {
@@ -175,6 +179,7 @@ public class CommandExecutorService implements CommandExecutor {
attempt++;
return async(readOnlyMode, slot, operation, attempt);
} finally {
+ connectionManager.getShutdownLatch().release();
if (readOnlyMode) {
connectionManager.releaseRead(slot, connection);
} else {
@@ -268,6 +273,11 @@ public class CommandExecutorService implements CommandExecutor {
protected void async(final boolean readOnlyMode, final int slot, final MultiDecoder