code: @Override
      public URLStreamHandler getURLStreamHandler(SSLConfig config) throws Exception {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              Tr.entry(tc, "getURLStreamHandler");
          URLStreamHandler urlStreamHandler = null;
          Properties existingProps = null;
  
          try {
              // pop/push old/new properties on the thread
              existingProps = ThreadManager.getInstance().getPropertiesOnThread();
              ThreadManager.getInstance().setPropertiesOnThread(config);
  
              // try getting the stream handler from factory for "https"
              urlStreamHandler = getHandler();
  
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  Tr.exit(tc, "getURLStreamHandler");
              return urlStreamHandler;
          } catch (Exception e) {
              FFDCFilter.processException(e, getClass().getName(), "getURLStreamHandler", this);
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  Tr.exit(tc, "The following exception occurred in getURLStreamHandler().", new Object[] { e });
              if (e instanceof SSLException)
                  throw (SSLException) e;
              throw new SSLException(e);
          } finally {
              // push old back on the thread.
              ThreadManager.getInstance().setPropertiesOnThread(existingProps);
          }
      }
docs: /*
  @see
  com.ibm.wesphere.ssl.JSSEProvider#getURLStreamHandler(com.ibm.ws.ssl.config
  .SSLConfig)