You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@karaf.apache.org by David Jencks <da...@yahoo.com> on 2011/10/15 02:05:09 UTC

Something wrong with FeatureDeploymentListener?

I'm having big problems with FeatureDeploymentListener.... it might be due to running with osgi 4.3 frameworks and aries snapshots, but I doubt it.

First I saw corrupted FeatureDeploymentListener.cfg files (long sections of 0's) so I changed the code to delete the file after reading it before rewriting it, then I got stack traces like

2011-10-14 16:28:38,647 | ERROR | rint Extender: 3 | FeatureDeploymentListener        | atures.FeatureDeploymentListener  168 | 22 - org.apache.karaf.deployer.features - 3.0.0.SNAPSHOT | Unable to install deployed features for bundle: org.apache.servicemix.bundles.ant - 1.7.0.3
java.io.FileNotFoundException: /Users/david/projects/geronimo-git/geronimo/assemblies/geronimo-tomcat7-javaee6-web/target/geronimo-tomcat7-javaee6-web-3.0-SNAPSHOT/data/cache/org.eclipse.osgi/bundles/22/data/FeatureDeploymentListener.cfg (No such file or directory)
        at java.io.FileInputStream.open(Native Method)[:1.6.0_26]
        at java.io.FileInputStream.<init>(FileInputStream.java:120)[:1.6.0_26]
        at org.apache.karaf.deployer.features.FeatureDeploymentListener.bundleChanged(FeatureDeploymentListener.java:146)
        at org.apache.karaf.deployer.features.FeatureDeploymentListener.init(FeatureDeploymentListener.java:81)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.6.0_26]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)[:1.6.0_26]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[:1.6.0_26]
        at java.lang.reflect.Method.invoke(Method.java:597)[:1.6.0_26]
        at org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:238)[231:org.apache.aries.blueprint.core:0.3.2.SNAPSHOT]
        at org.apache.aries.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:838)[231:org.apache.aries.blueprint.core:0.3.2.SNAPSHOT]
        at org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:638)[231:org.apache.aries.blueprint.core:0.3.2.SNAPSHOT]
        at org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:726)[231:org.apache.aries.blueprint.core:0.3.2.SNAPSHOT]
        at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:71)[231:org.apache.aries.blueprint.core:0.3.2.SNAPSHOT]
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_26]
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_26]
        at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:79)[231:org.apache.aries.blueprint.core:0.3.2.SNAPSHOT]
        at org.apache.aries.blueprint.di.RefRecipe.internalCreate(RefRecipe.java:60)[231:org.apache.aries.blueprint.core:0.3.2.SNAPSHOT]
        at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:98)[231:org.apache.aries.blueprint.core:0.3.2.SNAPSHOT]
        at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:220)[231:org.apache.aries.blueprint.core:0.3.2.SNAPSHOT]
        at org.apache.aries.blueprint.container.BlueprintRepository.createInstance(BlueprintRepository.java:205)[231:org.apache.aries.blueprint.core:0.3.2.SNAPSHOT]
        at org.apache.aries.blueprint.container.BlueprintRepository.create(BlueprintRepository.java:144)[231:org.apache.aries.blueprint.core:0.3.2.SNAPSHOT]
        at org.apache.aries.blueprint.container.ServiceRecipe.createRecipe(ServiceRecipe.java:398)[231:org.apache.aries.blueprint.core:0.3.2.SNAPSHOT]
        at org.apache.aries.blueprint.container.ServiceRecipe.createService(ServiceRecipe.java:271)[231:org.apache.aries.blueprint.core:0.3.2.SNAPSHOT]
        at org.apache.aries.blueprint.container.ServiceRecipe.internalGetService(ServiceRecipe.java:243)[231:org.apache.aries.blueprint.core:0.3.2.SNAPSHOT]
        at org.apache.aries.blueprint.container.ServiceRecipe.internalGetService(ServiceRecipe.java:230)[231:org.apache.aries.blueprint.core:0.3.2.SNAPSHOT]
        at org.apache.aries.blueprint.container.ServiceRecipe.getClasses(ServiceRecipe.java:333)[231:org.apache.aries.blueprint.core:0.3.2.SNAPSHOT]
        at org.apache.aries.blueprint.container.ServiceRecipe.register(ServiceRecipe.java:181)[231:org.apache.aries.blueprint.core:0.3.2.SNAPSHOT]
        at org.apache.aries.blueprint.container.BlueprintContainerImpl.registerServices(BlueprintContainerImpl.java:652)[231:org.apache.aries.blueprint.core:0.3.2.SNAPSHOT]
        at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:325)[231:org.apache.aries.blueprint.core:0.3.2.SNAPSHOT]
        at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:228)[231:org.apache.aries.blueprint.core:0.3.2.SNAPSHOT]
        at org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:48)[231:org.apache.aries.blueprint.core:0.3.2.SNAPSHOT]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6.0_26]
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_26]
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_26]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)[:1.6.0_26]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)[:1.6.0_26]
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[:1.6.0_26]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[:1.6.0_26]
        at java.lang.Thread.run(Thread.java:680)[:1.6.0_26]

Replacing the synchronized (this) with synchronized (this.getClass()) removes these errors.  My conclusion is that a lot of instances of this class are getting created by blueprint simultaneously.

Is this intended or is there something wrong in the blueprint configuration, such as prototype rather than singleton scope?  (can't remember the right terms....)

thanks
david jencks