From 5684569b0cd9a47fb3cf699d54bac3a18f34d1e1 Mon Sep 17 00:00:00 2001 From: Denis Zhdanov Date: Wed, 20 May 2015 16:21:20 +0300 Subject: [PATCH] Fix for upsource - it uses its own class loaders which are not IS-A PluginClassLoader --- .../src/net/sf/cglib/proxy/AdvancedEnhancer.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/platform/platform-impl/src/net/sf/cglib/proxy/AdvancedEnhancer.java b/platform/platform-impl/src/net/sf/cglib/proxy/AdvancedEnhancer.java index a2f21c3d0018..410c7b47c2a1 100644 --- a/platform/platform-impl/src/net/sf/cglib/proxy/AdvancedEnhancer.java +++ b/platform/platform-impl/src/net/sf/cglib/proxy/AdvancedEnhancer.java @@ -366,6 +366,7 @@ public class AdvancedEnhancer extends AbstractClassGenerator protected ClassLoader getDefaultClassLoader() { int maxIndex = -1; ClassLoader bestLoader = null; + ClassLoader nonPluginLoader = null; if (interfaces != null && interfaces.length > 0) { for (final Class anInterface : interfaces) { final ClassLoader loader = anInterface.getClassLoader(); @@ -376,6 +377,9 @@ public class AdvancedEnhancer extends AbstractClassGenerator bestLoader = loader; } } + else if (nonPluginLoader == null) { + nonPluginLoader = loader; + } } } ClassLoader superLoader = null; @@ -387,7 +391,7 @@ public class AdvancedEnhancer extends AbstractClassGenerator } } if (bestLoader != null) return bestLoader; - return superLoader; + return superLoader == null ? nonPluginLoader : superLoader; } private static Signature rename(Signature sig, int index) {