code: public final SSLEngine createSSLEngine() {
          try {
              return contextSpi.engineCreateSSLEngine();
          } catch (AbstractMethodError e) {
              UnsupportedOperationException unsup =
                  new UnsupportedOperationException(
                      "Provider: " + getProvider() +
                      " doesn't support this operation");
              unsup.initCause(e);
              throw unsup;
          }
      }
docs: Creates a new <code>SSLEngine</code> using this context.
  <P>
  Applications using this factory method are providing no hints
  for an internal session reuse strategy. If hints are desired,
  {@link #createSSLEngine(String, int)} should be used
  instead.
  <P>
  Some cipher suites (such as Kerberos) require remote hostname
  information, in which case this factory method should not be used.
  
  @return  the <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