Author: mnuttall
Date: Thu Aug 28 10:46:00 2014
New Revision: 1621114

URL: http://svn.apache.org/r1621114
Log:
Aries-1238: Fix for ARIES-1216 can cause NPE if classToProxy is a class from 
the boot loader

Modified:
    
aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/AsmProxyManager.java

Modified: 
aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/AsmProxyManager.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/AsmProxyManager.java?rev=1621114&r1=1621113&r2=1621114&view=diff
==============================================================================
--- 
aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/AsmProxyManager.java
 (original)
+++ 
aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/AsmProxyManager.java
 Thu Aug 28 10:46:00 2014
@@ -44,6 +44,8 @@ import org.osgi.framework.Bundle;
 
 public final class AsmProxyManager extends AbstractProxyManager implements 
ProxyManager
 {
+  static final ClassLoader bootClassLoader = new 
ClassLoader(Object.class.getClassLoader()) { /* boot class loader */};
+       
   public Object createNewProxy(Bundle clientBundle, Collection<Class<?>> 
classes, 
       Callable<Object> dispatcher, InvocationListener listener) throws 
UnableToProxyException
   {
@@ -111,6 +113,9 @@ public final class AsmProxyManager exten
         // If we could generate a proper constructor this would not be 
necessary, but since we have to rely
         // on the generated serialization constructor to bypass the JVM 
verifier, we don't have much choice
         ClassLoader classLoader = classToProxy.getClassLoader();
+        if (classLoader == null) {
+               classLoader = bootClassLoader;
+        }
         boolean allVisible = true;
         for (Class<?> clazz : classes) {
           try {


Reply via email to