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");