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) {