From efeb15afbc239665549f0ae8b985042e7d5ec983 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=91=88=E7=86=B9?= Date: Wed, 21 Feb 2024 15:01:20 +0800 Subject: [PATCH] make Connection.isFine check Connection's closed state (#340) --- src/main/java/com/alipay/remoting/Connection.java | 2 +- .../alipay/remoting/inner/connection/ConnectionTest.java | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/alipay/remoting/Connection.java b/src/main/java/com/alipay/remoting/Connection.java index ecaf96a5..01ee4ff5 100644 --- a/src/main/java/com/alipay/remoting/Connection.java +++ b/src/main/java/com/alipay/remoting/Connection.java @@ -157,7 +157,7 @@ private void init() { * @return true if connection is fine */ public boolean isFine() { - return this.channel != null && this.channel.isActive(); + return this.channel != null && this.channel.isActive() && !closed.get(); } /** diff --git a/src/test/java/com/alipay/remoting/inner/connection/ConnectionTest.java b/src/test/java/com/alipay/remoting/inner/connection/ConnectionTest.java index 24b71de9..b5749034 100644 --- a/src/test/java/com/alipay/remoting/inner/connection/ConnectionTest.java +++ b/src/test/java/com/alipay/remoting/inner/connection/ConnectionTest.java @@ -16,6 +16,7 @@ */ package com.alipay.remoting.inner.connection; +import com.alipay.remoting.exception.RemotingException; import org.junit.After; import org.junit.Assert; import org.junit.Before; @@ -123,4 +124,11 @@ public void connectionTest() throws Exception { Thread.sleep(100); Assert.assertEquals(3, serverConnectProcessor.getConnectTimes()); } + + @Test + public void testIsFine() throws RemotingException { + Connection conn = client.createStandaloneConnection(ip, port, 1000); + conn.close(); + Assert.assertFalse(conn.isFine()); + } }