Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 package pt.webdetails.cda.cache;
 
Boilerplate to run a method in a different ClassLoader.
public class ClassLoaderAwareCaller {
  private ClassLoader classLoader;
  
  public ClassLoaderAwareCaller(ClassLoader classLoader){
   this. = classLoader
  }
  
  protected <T> T callInClassLoader(Callable<T> callablethrows Exception{
    ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
    try
    {
      if(this. != null)
      {
        Thread.currentThread().setContextClassLoader(this.);
      }
      
      return callable.call();
      
    }
    finally{
      Thread.currentThread().setContextClassLoader(contextClassLoader);
    }
  }
      
  protected void runInClassLoader(Runnable runnable)
  {
    ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
    try
    {
      if(this. != null)
      {
        Thread.currentThread().setContextClassLoader(this.);
      }
      
      runnable.run();
      
    }
    finally{
      Thread.currentThread().setContextClassLoader(contextClassLoader);
    }
  }
New to GrepCode? Check out our FAQ X