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 {