code:     protected void checkConfig() throws IOException {
          // Create an unbound server socket
          ServerSocket socket =
              JdkCompat.getJdkCompat().getUnboundSocket(sslProxy);
          if (socket == null) {
              // Can create unbound sockets (1.3 JVM) - can't test the connection
              return;
          }
          initServerSocket(socket);
  
          try {
              // Set the timeout to 1ms as all we care about is if it throws an
              // SSLException on accept. 
              socket.setSoTimeout(1);
  
              socket.accept();
              // Will never get here - no client can connect to an unbound port
          } catch (SSLException ssle) {
              // SSL configuration is invalid. Possibly cert doesn't match ciphers
              IOException ioe = new IOException(sm.getString(
                      "jsse.invalid_ssl_conf", ssle.getMessage()));
              JdkCompat.getJdkCompat().chainException(ioe, ssle);
              throw ioe;
          } catch (Exception e) {
              /*
               * Possible ways of getting here
               * socket.accept() throws a SecurityException
               * socket.setSoTimeout() throws a SocketException
               * socket.accept() throws some other exception (after a JDK change)
               *      In these cases the test won't work so carry on - essentially
               *      the behaviour before this patch
               * socket.accept() throws a SocketTimeoutException
               *      In this case all is well so carry on
               */
          } finally {
              // Should be open here but just in case
              try {
                  socket.close();
              } catch (IOException ioe) {
                  // Ignore
              }
          }
          
      }
  