You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by ma...@apache.org on 2010/07/19 21:28:54 UTC

svn commit: r965593 - /incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/proxy/ProxySubclassGenerator.java

Author: mahrwald
Date: Mon Jul 19 19:28:54 2010
New Revision: 965593

URL: http://svn.apache.org/viewvc?rev=965593&view=rev
Log:
ARIES-360: Avoid context classloader for proxying java.* classes

Modified:
    incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/proxy/ProxySubclassGenerator.java

Modified: incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/proxy/ProxySubclassGenerator.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/proxy/ProxySubclassGenerator.java?rev=965593&r1=965592&r2=965593&view=diff
==============================================================================
--- incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/proxy/ProxySubclassGenerator.java (original)
+++ incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/proxy/ProxySubclassGenerator.java Mon Jul 19 19:28:54 2010
@@ -50,6 +50,8 @@ public class ProxySubclassGenerator
   // the map of
   // Class names to sub-Class names)
   private static final Map<ClassLoader, ConcurrentMap<String, String>> proxyClassesByClassLoader;
+  
+  private static final ClassLoader defaultClassLoader = new ClassLoader() {};
 
   static {
     // Ensure that this is a synchronized map as we may use it from multiple
@@ -67,10 +69,9 @@ public class ProxySubclassGenerator
     LOGGER.debug(AsmInterceptorWrapper.LOG_ENTRY, "getProxySubclass", new Object[] { aClass });
 
     ClassLoader loader = aClass.getClassLoader();
-    // in the special case where the loader is null we use the thread
-    // ContextClassLoader
-    // this is for subclassing java.* or javax.* packages
-    if (loader == null) loader = Thread.currentThread().getContextClassLoader();
+    // in the special case where the loader is null we use a default classloader
+    // this is for subclassing java.* or javax.* packages, so that one will do
+    if (loader == null) loader = defaultClassLoader;
 
     ConcurrentMap<String, String> proxyMap;
     synchronized (loader) {