@Test
  public void untrustedClientIsRejected() {
    VM serverVM = getVM(1);
    VM clientVM = getVM(2);

    boolean cacheServerSslenabled = true;
    boolean cacheClientSslenabled = true;
    boolean cacheClientSslRequireAuth = false;

    serverVM.invoke(() -> setUpServerVMTask(cacheServerSslenabled, 0));
    serverVM.invoke(CacheServerSSLConnectionDUnitTest::createServerTask);

    Object[] array = serverVM.invoke(CacheServerSSLConnectionDUnitTest::getCacheServerEndPointTask);
    String hostName = (String) array[0];
    int port = (Integer) array[1];

    addIgnoredException("SSLHandshakeException");

    clientVM.invoke(() -> setUpClientVMTask(hostName, port, cacheClientSslenabled,
        cacheClientSslRequireAuth, "default.keystore", CLIENT_TRUST_STORE, false));

    try {
      clientVM.invoke(CacheServerSSLConnectionDUnitTest::doClientRegionTestTask);
      fail("client should not have been able to execute a cache operation");
    } catch (RMIException e) {
      assertThat(e).hasRootCauseInstanceOf(NoAvailableServersException.class);
    }
    serverVM.invoke(CacheServerSSLConnectionDUnitTest::verifyServerDoesNotReceiveClientUpdate);
  }
GEODE-2898: A non-responsive SSL client can block a server's "acceptor" thread

<p>
Start a server and then connect to it without completing the SSL handshake

<p>
Attempt to connect to the server using a real SSL client, demonstrating that the server is not
blocked and can process the new connection request.
geode-core/src/distributedTest/java/org/apache/geode/cache/client/internal/CacheServerSSLConnectionDUnitTest.java