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