public static <T, E1 extends Exception> T withClassLoader(
      ClassLoader classLoader,
      Class<E1> e1,
      ExceptionSupplier<T> supplier
   ) throws E1 {
     try {
       return withClassLoaderInternal(classLoader, supplier);
     } catch (Exception e) {
       Throwables.propagateIfPossible(e, e1);
       Throwables.propagate(e);
     }

     return null;
   }
public static <T, E1 extends Exception> T withClassLoader(
      ClassLoader classLoader,
      Class<E1> e1,
      ExceptionSupplier<T> supplier
   ) throws E1 {
     try {
       return withClassLoaderInternal(classLoader, supplier);
     } catch (Exception e) {
       Throwables.propagateIfPossible(e, e1);
       Throwables.propagate(e);
     }

     return null;
   }
public static < T , E1 extends Exception > T withClassLoader ( ClassLoader classLoader , Class < E1 > e1 , ExceptionSupplier < T > supplier ) throws E1 { try { return withClassLoaderInternal ( classLoader , supplier ) ; } catch ( Exception e ) { Throwables . propagateIfPossible ( e , e1 ) ; Throwables . propagate ( e ) ; } return null ; }
Runs a Supplier within the context of a specified ClassLoader.

@param classLoader the ClassLoader to run the Supplier.
@param supplier the Supplier to run within the context of a specified ClassLoader.
Runs a Supplier within the context of a specified ClassLoader .