NPE from ServiceRecipe when proxying JDK classes
------------------------------------------------

                 Key: ARIES-526
                 URL: https://issues.apache.org/jira/browse/ARIES-526
             Project: Aries
          Issue Type: Bug
          Components: Blueprint
    Affects Versions: 0.3
            Reporter: Alasdair Nottingham
            Assignee: Alasdair Nottingham
             Fix For: 0.3


The ProxyManager expects to be given a non-null Bundle when generating the 
proxy. Currently in some scenarios Blueprint can pass in null. Causing the 
following:

[12/23/10 13:52:26:537 GMT] 00000017 ServiceRecipe I 
org.apache.aries.blueprint.container.ServiceRecipe$TriggerServiceFactory 
getService A problem occurred trying to create a proxy object. Returning the 
original object instead.
                                 java.lang.NullPointerException
        at 
org.apache.aries.proxy.impl.AbstractProxyManager.getClassLoader(AbstractProxyManager.java:83)
        at 
org.apache.aries.proxy.impl.AsmProxyManager.createNewProxy(AsmProxyManager.java:84)
        at 
org.apache.aries.proxy.impl.AbstractProxyManager.createProxy(AbstractProxyManager.java:50)
        at 
org.apache.aries.blueprint.container.ServiceRecipe$TriggerServiceFactory.getService(ServiceRecipe.java:463)
        at 
org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run(ServiceUse.java:120)
        at 
java.security.AccessController.doPrivileged(AccessController.java:203)

This is caused because in TriggerServiceFactory it calls 
FrameworkUtil.getBundle() this returns null if the class isn't loaded from a 
bundle, e.g. is from the JDK, so proxying doesn't work. In this scenario we 
should use the blueprint bundle instead to generate the proxy.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to