From a326b66457d3fe9a471715cc5f04d915861ddddb Mon Sep 17 00:00:00 2001
From: Brett Wooldridge <brett.wooldridge@gmail.com>
Date: Tue, 12 Nov 2013 12:34:06 +0900
Subject: [PATCH] Set Thread context class loader, fixes issue with Bukkit
 plugin class loader (and probably other application server class loaders).

---
 .../proxy/JavassistProxyFactoryFactory.java     | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/zaxxer/hikari/proxy/JavassistProxyFactoryFactory.java b/src/main/java/com/zaxxer/hikari/proxy/JavassistProxyFactoryFactory.java
index 5cd79a8d..2abe1036 100644
--- a/src/main/java/com/zaxxer/hikari/proxy/JavassistProxyFactoryFactory.java
+++ b/src/main/java/com/zaxxer/hikari/proxy/JavassistProxyFactoryFactory.java
@@ -45,15 +45,22 @@ public final class JavassistProxyFactoryFactory
 
     static
     {
-        JavassistProxyFactoryFactory proxyFactoryFactory = new JavassistProxyFactoryFactory();
-
+    	ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
         try
         {
-            proxyFactory = proxyFactoryFactory.generateProxyFactory();
+        	Thread.currentThread().setContextClassLoader(JavassistProxyFactoryFactory.class.getClassLoader());
+        	
+        	JavassistProxyFactoryFactory proxyFactoryFactory = new JavassistProxyFactoryFactory();
+
+        	proxyFactory = proxyFactoryFactory.generateProxyFactory();
         }
         catch (Exception e)
         {
-            throw new RuntimeException(e);
+        	throw new RuntimeException(e);
+        }
+        finally
+        {
+        	Thread.currentThread().setContextClassLoader(contextClassLoader);
         }
     }
 
@@ -184,7 +191,7 @@ public final class JavassistProxyFactoryFactory
                 targetCt.addMethod(method);
             }
         }
-        targetCt.debugWriteFile("/tmp");
+
         return targetCt.toClass(classPool.getClassLoader(), null);
     }
 }