Hi.

I've encountered a problem concerning different behaviours between
equinox and felix concerning jars in lib/endorsed (I'm using Karaf).

I've got a bundle A that depends on classes located in a .jar in
lib/endorsed. With equinox, the bundle A has no problems finding the
classes. With felix, these classes are not found.

Typical error messages I've found are:

09:50:39,041 | ERROR | rint Extender: 1 | BlueprintContainerImpl | ? ? | 10 - 
org.apache.aries.blueprint - 0.3.1 | Unable to start blueprint container for 
bundle my.bundle.A
org.osgi.service.blueprint.container.ComponentDefinitionException: Unable to 
instantiate components
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:644)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:331)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:227)[10:org.apache.aries.blueprint:0.3.1]
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6.0_30]
        at 
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_30]
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_30]
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)[:1.6.0_30]
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)[:1.6.0_30]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[:1.6.0_30]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[:1.6.0_30]
        at java.lang.Thread.run(Thread.java:662)[:1.6.0_30]
Caused by: java.lang.NoClassDefFoundError: my/missing/Class
        at java.lang.Class.getDeclaredConstructors0(Native Method)[:1.6.0_30]
        at 
java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)[:1.6.0_30]
        at java.lang.Class.getConstructors(Class.java:1459)[:1.6.0_30]
        at 
org.apache.aries.blueprint.container.BeanRecipe.findMatchingConstructors(BeanRecipe.java:439)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BeanRecipe.getInstance(BeanRecipe.java:263)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:706)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:219)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:147)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:640)[10:org.apache.aries.blueprint:0.3.1]
        ... 10 more
Caused by: java.lang.ClassNotFoundException: my.missing.Class not found by 
my.bundle.A [233]
        at 
org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:845)
        at org.apache.felix.framework.ModuleImpl.access$400(ModuleImpl.java:74)
        at 
org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1839)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)[:1.6.0_30]
        ... 20 more

I'd be interested in understanding more in details why behaviours
between felix and equinox are different on this point. Pointers to
documentation would be welcome.

-- 
Guillaume Yziquel
Crossing-Tech
Parc Scientifique EPFL

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to