You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@karaf.apache.org by "J. Brébec (JIRA)" <ji...@apache.org> on 2017/10/19 15:56:00 UTC

[jira] [Commented] (KARAF-5435) BundleException when installing a bundle by API when the FeatureService install a feature

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

J. Brébec commented on KARAF-5435:
----------------------------------

A stacktrace :

{code}
Exception in org.apache.karaf.features.internal.service.FeaturesServiceImpl$2.end()
java.lang.RuntimeException: Exception in org.apache.karaf.features.internal.service.FeaturesServiceImpl$2.end()
	at org.eclipse.osgi.internal.framework.OSGiFrameworkHooks$CoreResolverHookFactory.handleHookException(OSGiFrameworkHooks.java:164)
	at org.eclipse.osgi.internal.framework.OSGiFrameworkHooks$CoreResolverHookFactory$CoreResolverHook.end(OSGiFrameworkHooks.java:346)
	at org.eclipse.osgi.container.ModuleResolver$ResolveProcess.resolve(ModuleResolver.java:966)
	at org.eclipse.osgi.container.ModuleResolver.resolveDynamicDelta(ModuleResolver.java:136)
	at org.eclipse.osgi.container.ModuleContainer.resolveDynamic(ModuleContainer.java:554)
	at org.eclipse.osgi.internal.loader.BundleLoader.findDynamicSource(BundleLoader.java:1113)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:428)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:372)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:364)
	at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:161)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:564)
	at org.apache.aries.blueprint.container.BlueprintExtender.isCompatible(BlueprintExtender.java:541)
	at org.apache.aries.blueprint.container.BlueprintExtender.getBlueprintPaths(BlueprintExtender.java:437)
	at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:264)
	at org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:255)
	at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500)
	at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433)
	at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725)
	at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463)
	at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422)
	at org.eclipse.osgi.internal.framework.EquinoxEventPublisher$2.call(EquinoxEventPublisher.java:239)
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHookPrivileged(ServiceRegistry.java:1280)
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHooksPrivileged(ServiceRegistry.java:1263)
	at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.notifyEventHooksPrivileged(EquinoxEventPublisher.java:236)
	at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:194)
	at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:120)
	at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:112)
	at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:156)
	at org.eclipse.osgi.container.Module.publishEvent(Module.java:476)
	at org.eclipse.osgi.container.Module.start(Module.java:467)
	at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:383)
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1250)
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1222)
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:514)
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:363)
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:314)
Caused by: org.osgi.framework.BundleException: Exception in org.apache.karaf.features.internal.service.FeaturesServiceImpl$2.end()
	... 37 more
{code}

> BundleException when installing a bundle by API when the FeatureService install a feature
> -----------------------------------------------------------------------------------------
>
>                 Key: KARAF-5435
>                 URL: https://issues.apache.org/jira/browse/KARAF-5435
>             Project: Karaf
>          Issue Type: Bug
>    Affects Versions: 4.1.2
>            Reporter: J. Brébec
>            Priority: Critical
>
> If a bundle install another bundle using his Bundlecontext, when the FeatureService resolve a features, then a BundleException can be thrown by the osgi framework.
> FeaturesServiceImpl, in the method 'resolveBundles' registers a ResolverHookFactory and unregisters this factory at this end. However, if another bundle X is resolved during the execution of this methods (using a BundleContext), then this ResolverHookFactory will be used, and it can be unregistered during the resolution of X. The osgi spec says that the resolution of X should fail if a ResolverHookFactory is unregistered during the resolution.
> This can happens on a cold start when "fileinstall" install a bundle and the FeatureService installs the boot features.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)