[ 
https://issues.apache.org/jira/browse/KARAF-910?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13167350#comment-13167350
 ] 

David Jencks commented on KARAF-910:
------------------------------------

I looked at this a little more.  I think we may need to do several things to 
completely solve this.  Even if config admin is running before we start the mvn 
url handler, and the config is available, and we follow Neils advice and change 
pax mvn url to wait to register the mvn url handler until the config is 
installed, karaf may have started all the startup bundles and be trying to 
start bundles with mvn urls before config admin gets around to applying the 
config and making the mvn url handler available.  I think we need to provide 
karaf with some way to wait until the mvn url handler is correctly configured 
and use it before we process the boot features.
                
> Race between FeatureService and ConfigAdmin for resolving mvn: URLs?
> --------------------------------------------------------------------
>
>                 Key: KARAF-910
>                 URL: https://issues.apache.org/jira/browse/KARAF-910
>             Project: Karaf
>          Issue Type: Bug
>          Components: karaf-features
>    Affects Versions: 2.2.2
>         Environment: Talend Service Factory 2.4.2.0 (includes Karaf 2.2.2) 
> with the Equinox core.
>            Reporter: Chris Dolan
>            Assignee: Jean-Baptiste Onofré
>             Fix For: 2.2.6, 3.0.0
>
>
> I have an intermittent problem where my custom features.xml cannot be 
> resolved. I use a tweaked etc/org.ops4j.pax.url.mvn.cfg file so the 
> features.xml file is never present in $HOME/.m2/repo but is instead is 
> resolved to local repo relative to the app:
> org.ops4j.pax.url.mvn.defaultRepositories=file:${karaf.base}/system@snapshots,\
>     file:${karaf.home}/${karaf.default.repository}@snapshots,\
>     file:${karaf.base}/../../../.env/.m2/repo@snapshots
> Sometimes when I start Karaf, I get this error (actual URL edited for privacy)
> karaf@tsf> 2011-09-30 09:23:09,760 WARN  [FeaturesServiceImpl.java:924] 
> Unable to add features repository 
> mvn:<my-group-id>/<my-artifact-id>/<my-version>/xml/features at startup - 
> o.a.k.f.i.FeaturesServiceImpl
> java.lang.RuntimeException: URL 
> [mvn:<my-group-id>/<my-artifact-id>/<my-version>/xml/features] could not be 
> resolved.
>       at 
> org.ops4j.pax.url.mvn.internal.Connection.getInputStream(Connection.java:195) 
> [na:na]
>       at 
> org.ops4j.pax.url.mvn.internal.AetherBridgeConnection.getInputStream(AetherBridgeConnection.java:68)
>  [na:na]
>       at 
> org.apache.karaf.features.internal.FeatureValidationUtil.validate(FeatureValidationUtil.java:49)
>  [na:na]
>       at 
> org.apache.karaf.features.internal.FeaturesServiceImpl.validateRepository(FeaturesServiceImpl.java:199)
>  [na:na]
>       at 
> org.apache.karaf.features.internal.FeaturesServiceImpl.internalAddRepository(FeaturesServiceImpl.java:210)
>  [na:na]
>       at 
> org.apache.karaf.features.internal.FeaturesServiceImpl.start(FeaturesServiceImpl.java:922)
>  [na:na]
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
> [na:1.6.0_26]
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
> [na:1.6.0_26]
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>  [na:1.6.0_26]
>       at java.lang.reflect.Method.invoke(Method.java:597) [na:1.6.0_26]
>       at 
> org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:226)
>  [org.apache.aries.blueprint:0.3.1]
>       at 
> org.apache.aries.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:824) 
> [org.apache.aries.blueprint:0.3.1]
>       at 
> org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:636)
>  [org.apache.aries.blueprint:0.3.1]
>       at 
> org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:724)
>  [org.apache.aries.blueprint:0.3.1]
>       at 
> org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64) 
> [org.apache.aries.blueprint:0.3.1]
>       at 
> org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:219)
>  [org.apache.aries.blueprint:0.3.1]
>       at 
> org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:147)
>  [org.apache.aries.blueprint:0.3.1]
>       at 
> org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:640)
>  [org.apache.aries.blueprint:0.3.1]
>       at 
> org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:331)
>  [org.apache.aries.blueprint:0.3.1]
>       at 
> org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:227)
>  [org.apache.aries.blueprint:0.3.1]
>       at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) 
> [na:1.6.0_26]
>       at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 
> [na:1.6.0_26]
>       at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
> [na:1.6.0_26]
>       at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
>  [na:1.6.0_26]
>       at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
>  [na:1.6.0_26]
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>  [na:1.6.0_26]
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>  [na:1.6.0_26]
>       at java.lang.Thread.run(Thread.java:662) [na:1.6.0_26]
> If I put a breakpoint in 
> org.ops4j.pax.url.mvn.internal.Connection.getInputStream(), I can see that 
> when it fails m_configuration.getDefaultRepositories() contains one repo 
> ($HOME/.m2/repo) and when it succeeds 
> m_configuration.getDefaultRepositories() contains the three repos I've 
> specified in etc/org.ops4j.pax.url.mvn.cfg.
> I interpret that to mean that sometimes the features resolution happens 
> before Felix reads the files in etc/ and sometimes the features load 
> afterward. Mostly I'm using the same startlevels as Karaf -- my 
> startup.properties file is identical to the following except for a few 
> additions I made.
> http://svn.apache.org/viewvc/karaf/trunk/assemblies/apache-karaf/src/main/filtered-resources/etc/startup.properties?revision=1176017&view=markup

--
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