Java Thread Callable executeWithClassLoader(ClassLoader classLoader, Callable callable)

Here you can find the source of executeWithClassLoader(ClassLoader classLoader, Callable callable)

Description

Execute the call within the given class loader...

License

Apache License

Parameter

Parameter Description
classLoader the class loader to set for the duration of the call
callable the callable to execute within the context of the provided class loader

Exception

Parameter Description
Exception whatever callable throws

Return

the result of the call

Declaration

public static <T> T executeWithClassLoader(ClassLoader classLoader, Callable<T> callable) throws Exception 

Method Source Code

//package com.java2s;
/*//from w  w w.  j a va  2s  .c o  m
 * Copyright 2010-2010 LinkedIn, Inc
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */

import java.util.concurrent.Callable;

public class Main {
    /**
     * Execute the call within the given class loader... handle setting / reverting to
     * previous class loader in a safe manner.
     *
     * @param classLoader the class loader to set for the duration of the call
     * @param callable the callable to execute within the context of the provided class loader
     * @return the result of the call
     * @throws Exception whatever callable throws
     */
    public static <T> T executeWithClassLoader(ClassLoader classLoader, Callable<T> callable) throws Exception {
        ClassLoader previousClassLoader = Thread.currentThread().getContextClassLoader();
        try {
            Thread.currentThread().setContextClassLoader(classLoader);
            return callable.call();
        } finally {
            Thread.currentThread().setContextClassLoader(previousClassLoader);
        }
    }
}

Related

  1. callWithSystemProperty(String name, String value, Callable callee)
  2. copyFromList(final List list, final double[][] data, final int cols)
  3. copyInto(final List list, final double[] data)
  4. executeLocally(Callable task)
  5. executeUntilNonNullOrTimeout(final long timeoutMs, final long timeBetweenPollsMs, final Callable callable)
  6. expectException(Callable callable, Class exception)
  7. getBytes(final String string)
  8. getFuture(ExecutorService executorService, Callable callable)
  9. getRandomValueForPrimitive(Class type)