This is an automated email from the ASF dual-hosted git repository.
zhouxj pushed a commit to branch support/1.12
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/support/1.12 by this push:
new 06f23f0 GEODE-8557: Throw IOException instead of
IllegalStateException when NioSslEngine (#5573)
06f23f0 is described below
commit 06f23f0727286972140d34b05b9913019e7587e6
Author: Xiaojian Zhou <[email protected]>
AuthorDate: Wed Sep 30 10:45:29 2020 -0700
GEODE-8557: Throw IOException instead of IllegalStateException when
NioSslEngine (#5573)
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);
}