Karl:

    0) yes, under "normal use", like in gogo, you can install /
    uninstall your bundle just fine

    my scenario is like this:

    1) after framework start(), I detect duplicates (same bundle coming
    from a different location)
    if I have a duplicate, I uninstall it first, then install it anew
    from new location;

    2) code snippet and exception is below
    the duplicate is this case is framework.security bundle

    Thank you,

    Andrei

################################################

            Bundle duplicate = findDuplicate(location);
            if (duplicate != null) {
                log.debug("duplicate : {}", duplicate);
                duplicate.uninstall();
            }

            log.debug("install : {}", location);
            Bundle bundle = context.installBundle(location);

################################################

15:58:14.671 [# OSGI START] DEBUG com.barchart.platform.host.main.App -
duplicate : org.apache.felix.framework.security [1]
15:58:14.674 [# OSGI START] DEBUG com.barchart.platform.host.main.App -
install :
http://apps.agricharts.com/barchart-repository/org.apache.felix.framework.security-1.4.2.jar
15:58:14.742 [# OSGI START] ERROR com.barchart.platform.host.main.App -
org.osgi.framework.BundleException: Could not create bundle object.
    at org.apache.felix.framework.Felix.installBundle(Felix.java:2650)
~[org.apache.felix.framework-3.2.2.jar:na]
    at org.apache.felix.framework.Felix.installBundle(Felix.java:2501)
~[org.apache.felix.framework-3.2.2.jar:na]
    at
org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:150)
~[org.apache.felix.framework-3.2.2.jar:na]
    at
org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:123)
~[org.apache.felix.framework-3.2.2.jar:na]
    at
com.barchart.platform.host.impl.HostOsgiFramework.osgiActivate(HostOsgiFramework.java:255)
~[classes/:na]
    at
com.barchart.platform.host.impl.HostServiceProvider.osgiActivate(HostServiceProvider.java:48)
~[classes/:na]
    at
com.barchart.platform.host.impl.HostServiceProvider.osgiStartup(HostServiceProvider.java:196)
~[classes/:na]
    at com.barchart.platform.host.main.App.access$0(App.java:1)
[classes/:na]
    at com.barchart.platform.host.main.App$1.runCore(App.java:36)
[classes/:na]
    at com.barchart.platform.api.util.RunSwitch.run(RunSwitch.java:57)
[classes/:na]
    at java.lang.Thread.run(Thread.java:662) [na:1.6.0_24]
Caused by: java.lang.NoClassDefFoundError:
org/apache/felix/framework/security/util/Permissions$Entry
    at
org.apache.felix.framework.security.util.Permissions.getPermissions(Permissions.java:125)
~[felix.extensions:9/:na]
    at
org.apache.felix.framework.security.util.LocalPermissions.implies(LocalPermissions.java:136)
~[felix.extensions:9/:na]
    at
org.apache.felix.framework.security.condpermadmin.ConditionalPermissionAdminImpl.impliesLocal(ConditionalPermissionAdminImpl.java:1030)
~[felix.extensions:9/:na]
    at
org.apache.felix.framework.security.permissionadmin.PermissionAdminImpl.hasPermission(PermissionAdminImpl.java:150)
~[felix.extensions:9/:na]
    at
org.apache.felix.framework.SecurityProviderImpl.hasBundlePermission(SecurityProviderImpl.java:100)
~[felix.extensions:9/:na]
    at
org.apache.felix.framework.Felix.impliesBundlePermission(Felix.java:3785)
~[org.apache.felix.framework-3.2.2.jar:na]
    at
org.apache.felix.framework.BundleProtectionDomain.impliesDirect(BundleProtectionDomain.java:73)
~[org.apache.felix.framework-3.2.2.jar:na]
    at
org.apache.felix.framework.ExtensionManager.addExtensionBundle(ExtensionManager.java:297)
~[org.apache.felix.framework-3.2.2.jar:na]
    at org.apache.felix.framework.Felix.installBundle(Felix.java:2612)
~[org.apache.felix.framework-3.2.2.jar:na]
    ... 10 common frames omitted
Caused by: java.lang.ClassNotFoundException:
org.apache.felix.framework.security.util.Permissions$Entry
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) ~[na:1.6.0_24]
    at java.security.AccessController.doPrivileged(Native Method)
~[na:1.6.0_24]
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
~[na:1.6.0_24]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307) ~[na:1.6.0_24]
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
~[na:1.6.0_24]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248) ~[na:1.6.0_24]
    ... 19 common frames omitted

################################################


-------- Original Message  --------
Subject: Re: remove felix.security after framework is started?
From: Karl Pauls <karlpa...@gmail.com>
To: users@felix.apache.org
Date: Fri 10 Jun 2011 10:37:14 AM CDT
> Hm, it should not become unstable. Can you give me a bit more
> information like for example are you running with java security
> enabled, what are the actual class not found exceptions, etc.?
>
> regards,
>
> Karl
>
> p.s.: feel free to create a jira issue with the information.
>
> On Fri, Jun 10, 2011 at 5:23 PM, Andrei Pozolotin
> <andrei.pozolo...@gmail.com> wrote:
>   
>>    Hello,
>>
>>    can you please let me what is the clean way to remove felix.security
>>    fragment bundle
>>    after the framework is already started with it?
>>
>>    if I just call bundle.uninstall() on this fragment, the framework
>>    does remove it
>>    but becomes unusable, blows up with class not found exceptions;
>>
>>    Thank you,
>>
>>    Andrei
>>
>>
>>
>>     
>
>
>
>   

Reply via email to