code: public final SSLEngine createSSLEngine(String peerHost, int peerPort) {
          try {
              return contextSpi.engineCreateSSLEngine(peerHost, peerPort);
          } catch (AbstractMethodError e) {
              UnsupportedOperationException unsup =
                  new UnsupportedOperationException(
                      "Provider: " + getProvider() +
                      " does not support this operation");
              unsup.initCause(e);
              throw unsup;
          }
      }
docs: Creates a new <code>SSLEngine</code> using this context using
  advisory peer information.
  <P>
  Applications using this factory method are providing hints
  for an internal session reuse strategy.
  <P>
  Some cipher suites (such as Kerberos) require remote hostname
  information, in which case peerHost needs to be specified.
  
  @param   peerHost the non-authoritative name of the host
  @param   peerPort the non-authoritative port
  @return  the new <code>SSLEngine</code> object
  @throws  UnsupportedOperationException if the underlying provider
  does not implement the operation.
  @throws  IllegalStateException if the SSLContextImpl requires
  initialization and the <code>init()</code> has not been called
  @since   1.5