1 19 20 package com.sslexplorer.core; 21 22 23 public abstract class DoWithContextClassLoader extends Thread { 24 25 private Object value; 26 private Exception exception; 27 28 public DoWithContextClassLoader(ClassLoader classLoader) { 29 super("DoWithContextClassLoader-" + classLoader.getClass().getName()); 30 setContextClassLoader(classLoader); 31 } 32 33 public Object doWith() throws Exception { 34 start(); 35 join(); 36 if(exception != null) { 37 throw exception; 38 } 39 return value; 40 } 41 42 public void run() { 43 try { 44 value = doRun(); 45 } 46 catch(Exception e) { 47 exception = e; 48 } 49 catch(Throwable t) { 50 t.printStackTrace(); 51 } 52 } 53 54 public abstract Object doRun() throws Exception ; 55 } | Popular Tags |