NPE when uninstall a bundle on enabled OSGi security
----------------------------------------------------

                 Key: FELIX-3221
                 URL: https://issues.apache.org/jira/browse/FELIX-3221
             Project: Felix
          Issue Type: Bug
          Components: Framework Security
    Affects Versions: framework.security-2.0.0
            Reporter: Michael Hirsch


org.apache.felix.framework.BundleImpl#adapt returns null:
{code}
public synchronized <A> A adapt(Class<A> type)
    {
        ....
        else if (type == BundleRevision.class)
        {
            if (m_state == Bundle.UNINSTALLED)
            {
                return null;
            }
.....
{code}

This causes a NPE: 
StackTrace:
java.lang.NullPointerException
        at 
org.apache.felix.framework.SecurityProviderImpl.getSignerMatcher(SecurityProviderImpl.java:73)
        at org.apache.felix.framework.Felix.getSignerMatcher(Felix.java:4130)
        at 
org.apache.felix.framework.BundleImpl.getSignerCertificates(BundleImpl.java:901)
        at 
org.osgi.framework.SignerProperty.isBundleSigned(SignerProperty.java:110)
        at org.osgi.framework.AdminPermission$1.run(AdminPermission.java:884)
        at java.security.AccessController.doPrivileged(Native Method)
        at 
org.osgi.framework.AdminPermission.getProperties(AdminPermission.java:875)
        at org.osgi.framework.AdminPermission.implies0(AdminPermission.java:671)
        at 
org.osgi.framework.AdminPermissionCollection.implies(AdminPermission.java:1014)
        at 
org.apache.felix.framework.security.util.Permissions.implies(Permissions.java:469)
        at 
org.apache.felix.framework.security.condpermadmin.ConditionalPermissionAdminImpl.eval(ConditionalPermissionAdminImpl.java:949)
        at 
org.apache.felix.framework.security.condpermadmin.ConditionalPermissionAdminImpl.hasPermission(ConditionalPermissionAdminImpl.java:882)
        at 
org.apache.felix.framework.SecurityProviderImpl.hasBundlePermission(SecurityProviderImpl.java:122)
        at 
org.apache.felix.framework.Felix.impliesBundlePermission(Felix.java:4139)
        at 
org.apache.felix.framework.BundleProtectionDomain.implies(BundleProtectionDomain.java:66)
        at java.security.AccessControlContext.checkPermission(Unknown Source)
        at java.security.AccessController.checkPermission(Unknown Source)
        at java.lang.SecurityManager.checkPermission(Unknown Source)
        at 
org.apache.felix.framework.BundleImpl.getLocation(BundleImpl.java:583)
        at 
org.apache.felix.cm.impl.ConfigurationManager.bundleChanged(ConfigurationManager.java:607)
        at 
org.apache.felix.framework.util.EventDispatcher$3.run(EventDispatcher.java:861)
        at java.security.AccessController.doPrivileged(Native Method)
        at 
org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:858)
        at 
org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:789)
        at 
org.apache.felix.framework.util.EventDispatcher.run(EventDispatcher.java:1088)
        at 
org.apache.felix.framework.util.EventDispatcher.access$000(EventDispatcher.java:54)
        at 
org.apache.felix.framework.util.EventDispatcher$1.run(EventDispatcher.java:101)
        at java.lang.Thread.run(Unknown Source)


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to