docs: static ClassLoader setContextClassLoader(final ClassLoader cl)
     {
        if (System.getSecurityManager() == null)
        {
           ClassLoader result = Thread.currentThread().getContextClassLoader();
           if (cl != null)
              Thread.currentThread().setContextClassLoader(cl);
           return result;
        }
        else
        {
           try
           {
              return AccessController.doPrivileged(new PrivilegedExceptionAction<ClassLoader>() {
                 public ClassLoader run() throws Exception
                 {
                    try
                    {
                       ClassLoader result = Thread.currentThread().getContextClassLoader();
                       if (cl != null)
                          Thread.currentThread().setContextClassLoader(cl);
                       return result;
                    }
                    catch (Exception e)
                    {
                       throw e;
                    }
                    catch (Error e)
                    {
                       throw e;
                    }
                    catch (Throwable e)
                    {
                       throw new RuntimeException("Error setting context classloader", e);
                    }
                 }
              });
           }
           catch (PrivilegedActionException e)
           {
              throw new RuntimeException("Error running privileged action", e.getCause());
           }
        }
     }