diff --git a/.travis.yml b/.travis.yml
index e0f12946..88d3d69c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,15 +1,9 @@
#.travis.yml
language: java
-addons:
- apt:
- packages:
- - openjdk-6-jdk
-
jdk:
- oraclejdk8
- openjdk7
- - openjdk6
before_install:
- echo "Downloading Maven 3.2.5"
diff --git a/pom.xml b/pom.xml
index ac20b362..13b1ba2e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,7 +22,7 @@
4.0.0
com.alipay.sofa
bolt
- 1.4.6
+ 1.4.7
jar
${project.groupId}:${project.artifactId}
diff --git a/src/main/java/com/alipay/remoting/rpc/RpcClient.java b/src/main/java/com/alipay/remoting/rpc/RpcClient.java
index d7bf4c5a..5471e202 100644
--- a/src/main/java/com/alipay/remoting/rpc/RpcClient.java
+++ b/src/main/java/com/alipay/remoting/rpc/RpcClient.java
@@ -803,6 +803,9 @@ public boolean checkConnection(String addr) {
*/
public void closeConnection(String addr) {
Url url = this.addressParser.parse(addr);
+ if (globalSwitch.isOn(GlobalSwitch.CONN_RECONNECT_SWITCH) && reconnectManager != null) {
+ reconnectManager.addCancelUrl(url);
+ }
this.connectionManager.remove(url.getUniqueKey());
}
@@ -812,6 +815,9 @@ public void closeConnection(String addr) {
* @param url
*/
public void closeConnection(Url url) {
+ if (globalSwitch.isOn(GlobalSwitch.CONN_RECONNECT_SWITCH) && reconnectManager != null) {
+ reconnectManager.addCancelUrl(url);
+ }
this.connectionManager.remove(url.getUniqueKey());
}
diff --git a/src/main/java/com/alipay/remoting/rpc/protocol/RpcCommandDecoderV2.java b/src/main/java/com/alipay/remoting/rpc/protocol/RpcCommandDecoderV2.java
index a1aba9ac..2d7a250c 100644
--- a/src/main/java/com/alipay/remoting/rpc/protocol/RpcCommandDecoderV2.java
+++ b/src/main/java/com/alipay/remoting/rpc/protocol/RpcCommandDecoderV2.java
@@ -19,8 +19,8 @@
import java.net.InetSocketAddress;
import java.util.List;
+import com.alipay.remoting.log.BoltLoggerFactory;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import com.alipay.remoting.CommandCode;
import com.alipay.remoting.CommandDecoder;
@@ -44,7 +44,7 @@
*/
public class RpcCommandDecoderV2 implements CommandDecoder {
- private static final Logger logger = LoggerFactory.getLogger("RpcRemoting");
+ private static final Logger logger = BoltLoggerFactory.getLogger("RpcRemoting");
private int lessLen;
diff --git a/src/main/java/com/alipay/remoting/rpc/protocol/RpcCommandEncoderV2.java b/src/main/java/com/alipay/remoting/rpc/protocol/RpcCommandEncoderV2.java
index ac34a6f0..6d7c973e 100644
--- a/src/main/java/com/alipay/remoting/rpc/protocol/RpcCommandEncoderV2.java
+++ b/src/main/java/com/alipay/remoting/rpc/protocol/RpcCommandEncoderV2.java
@@ -18,8 +18,8 @@
import java.io.Serializable;
+import com.alipay.remoting.log.BoltLoggerFactory;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import com.alipay.remoting.CommandEncoder;
import com.alipay.remoting.Connection;
@@ -41,7 +41,7 @@
*/
public class RpcCommandEncoderV2 implements CommandEncoder {
/** logger */
- private static final Logger logger = LoggerFactory.getLogger("RpcRemoting");
+ private static final Logger logger = BoltLoggerFactory.getLogger("RpcRemoting");
/**
* @see CommandEncoder#encode(ChannelHandlerContext, Serializable, ByteBuf)
diff --git a/src/test/java/com/alipay/remoting/rpc/connectionmanage/ReconnectManagerTest.java b/src/test/java/com/alipay/remoting/rpc/connectionmanage/ReconnectManagerTest.java
index 85b697c5..62af397f 100644
--- a/src/test/java/com/alipay/remoting/rpc/connectionmanage/ReconnectManagerTest.java
+++ b/src/test/java/com/alipay/remoting/rpc/connectionmanage/ReconnectManagerTest.java
@@ -106,11 +106,30 @@ public void testReconnectionByUserSetting() throws InterruptedException, Remotin
Assert.assertEquals(0, clientDisConnectProcessor.getDisConnectTimes());
Assert.assertEquals(1, clientConnectProcessor.getConnectTimes());
connection.close();
- Thread.sleep(1000);
+ Thread.sleep(2000);
Assert.assertEquals(1, clientDisConnectProcessor.getDisConnectTimes());
Assert.assertEquals(2, clientConnectProcessor.getConnectTimes());
}
+ @Test
+ public void testCancelReconnection() throws RemotingException, InterruptedException {
+ doInit(false, true);
+ client.enableReconnectSwitch();
+
+ String addr = "127.0.0.1:2014?zone=RZONE&_CONNECTIONNUM=1";
+ Url url = addressParser.parse(addr);
+
+ client.getConnection(url, 1000);
+ Assert.assertEquals(0, clientDisConnectProcessor.getDisConnectTimes());
+ Assert.assertEquals(1, clientConnectProcessor.getConnectTimes());
+
+ client.closeConnection(url);
+
+ Thread.sleep(1000);
+ Assert.assertEquals(1, clientDisConnectProcessor.getDisConnectTimes());
+ Assert.assertEquals(1, clientConnectProcessor.getConnectTimes());
+ }
+
private void doInit(boolean enableSystem, boolean enableUser) {
if (enableSystem) {
System.setProperty(Configs.CONN_RECONNECT_SWITCH, "true");