This is an automated email from the ASF dual-hosted git repository. zhouxj pushed a commit to branch feature/GEODE-8557 in repository https://gitbox.apache.org/repos/asf/geode.git
commit 6ff6180e63358aec047d7f9d3cc3432990d16a96 Author: zhouxh <[email protected]> AuthorDate: Tue Sep 29 21:59:18 2020 -0700 GEODE-8557: Throw IOException instead of IllegalStateException when NioSslEngine detects connection is closed. This is to backport partial of GEODE-6008. --- .../net/SSLSocketHostNameVerificationIntegrationTest.java | 3 ++- .../org/apache/geode/internal/net/SSLSocketIntegrationTest.java | 2 +- .../src/main/java/org/apache/geode/internal/net/NioSslEngine.java | 4 ++-- .../test/java/org/apache/geode/internal/net/NioSslEngineTest.java | 8 +++++--- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/net/SSLSocketHostNameVerificationIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/net/SSLSocketHostNameVerificationIntegrationTest.java index a1b0226..5483457 100755 --- a/geode-core/src/integrationTest/java/org/apache/geode/internal/net/SSLSocketHostNameVerificationIntegrationTest.java +++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/net/SSLSocketHostNameVerificationIntegrationTest.java @@ -22,6 +22,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.junit.Assert.assertNull; import static org.mockito.Mockito.mock; +import java.io.IOException; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.ServerSocket; @@ -216,7 +217,7 @@ public class SSLSocketHostNameVerificationIntegrationTest { assertThatThrownBy(() -> { nioSslEngine.unwrap(ByteBuffer.wrap(new byte[0])); }) - .isInstanceOf(IllegalStateException.class); + .isInstanceOf(IOException.class); } } }, this.testName.getMethodName() + "-server"); diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/net/SSLSocketIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/net/SSLSocketIntegrationTest.java index 481313e..4e6747b 100755 --- a/geode-core/src/integrationTest/java/org/apache/geode/internal/net/SSLSocketIntegrationTest.java +++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/net/SSLSocketIntegrationTest.java @@ -281,7 +281,7 @@ public class SSLSocketIntegrationTest { assertThatThrownBy(() -> { nioSslEngine.unwrap(ByteBuffer.wrap(new byte[0])); }) - .isInstanceOf(IllegalStateException.class); + .isInstanceOf(IOException.class); } } }, this.testName.getMethodName() + "-server"); diff --git a/geode-core/src/main/java/org/apache/geode/internal/net/NioSslEngine.java b/geode-core/src/main/java/org/apache/geode/internal/net/NioSslEngine.java index 9d67594..2d55fa3 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/net/NioSslEngine.java +++ b/geode-core/src/main/java/org/apache/geode/internal/net/NioSslEngine.java @@ -212,9 +212,9 @@ public class NioSslEngine implements NioFilter { return bufferPool.expandWriteBufferIfNeeded(type, existing, desiredCapacity); } - void checkClosed() { + void checkClosed() throws IOException { if (closed) { - throw new IllegalStateException("NioSslEngine has been closed"); + throw new IOException("NioSslEngine has been closed"); } } diff --git a/geode-core/src/test/java/org/apache/geode/internal/net/NioSslEngineTest.java b/geode-core/src/test/java/org/apache/geode/internal/net/NioSslEngineTest.java index 1d5e4a6..ef16a21 100644 --- a/geode-core/src/test/java/org/apache/geode/internal/net/NioSslEngineTest.java +++ b/geode-core/src/test/java/org/apache/geode/internal/net/NioSslEngineTest.java @@ -34,6 +34,7 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import java.io.IOException; import java.net.Socket; import java.net.SocketException; import java.nio.ByteBuffer; @@ -196,11 +197,11 @@ public class NioSslEngineTest { @Test - public void checkClosed() { + public void checkClosed() throws Exception { nioSslEngine.checkClosed(); } - @Test(expected = IllegalStateException.class) + @Test(expected = IOException.class) public void checkClosedThrows() throws Exception { when(mockEngine.wrap(any(ByteBuffer.class), any(ByteBuffer.class))).thenReturn( new SSLEngineResult(CLOSED, FINISHED, 0, 100)); @@ -340,7 +341,8 @@ public class NioSslEngineTest { when(mockEngine.wrap(any(ByteBuffer.class), any(ByteBuffer.class))).thenReturn( new SSLEngineResult(CLOSED, FINISHED, 0, 0)); nioSslEngine.close(mockChannel); - assertThatThrownBy(() -> nioSslEngine.checkClosed()).isInstanceOf(IllegalStateException.class); + assertThatThrownBy(() -> nioSslEngine.checkClosed()).isInstanceOf(IOException.class) + .hasMessageContaining("NioSslEngine has been closed"); nioSslEngine.close(mockChannel); }
