[
https://issues.jboss.org/browse/JBOSGI-800?page=com.atlassian.jira.plugin...
]
Arcadiy Ivanov commented on JBOSGI-800:
---------------------------------------
[~satish.bhor] Here's the authoritative word from OSGI 5 Spec (emphasis added):
The framework never eagerly disconnects the wires between Bundle Wirings, a disconnect
happens
only under control of the management agent when the refreshBundles(Collection,
FrameworkListener...) *method is called or when all requiring bundles become uninstalled*.
When a
bundle is updated, its existing BundleWiring objects will continue to serve classes and
resources to
bundles that use it. The update, even though it provides a new revision, has no effect on
resolved bundles
with respect to class loading. Also, the installation of a new bundle could allow new
wires but
they must not affect the existing wiring until
refreshBundles(Collection,FrameworkListener...) is
called (with the exception for dynamic imports). Though the class loading wires remain in
place,
proper bundles should react to the changes in the dynamic state. That is, when a bundle is
updated it
will be stopped, allowing others to remove any references they have to that bundle.
However, even in
those cases the wirings will remain until the bundle is unresolved during a refresh
cycle.
Since it does not seem possible to install a new revision of the deployment +base+ into
WildFly while the wirings from the old +base+ exist, you have to stop dependent first and
then redeploy the +base+, per OSGi. The forceful stop of +dependent+ when you undeploy
+base+ would be contrary to spec.
On Redeploy of osgi bundle getting DuplicateServiceException: Service
jboss.module.spec.service."deployment.basebundle-1.0.0.jar".main is already
registered
------------------------------------------------------------------------------------------------------------------------------------------------------------
Key: JBOSGI-800
URL:
https://issues.jboss.org/browse/JBOSGI-800
Project: JBoss OSGi
Issue Type: Bug
Environment: JBOSSOSGI 2.5.2.Final, apache felix as dependency
manager,Wildfly-10.1.0.Final with openjdk 1.8 on ubuntu 16.04
Reporter: satish bhor
Assignee: Arcadiy Ivanov
Fix For: JBossOSGI 2.5.3
Attachments: OSGI.zip
There are two osgi bundles base bundle and dependent bundle. When I undeploy base bundle
it works fine without any error but when I tried it redeploy application it throwing below
error.
12:48:48,807 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-7) MSC000001:
Failed to start service
jboss.deployment.unit."basebundle-1.0.0.jar".CONFIGURE_MODULE:
org.jboss.msc.service.StartException in service
jboss.deployment.unit."basebundle-1.0.0.jar".CONFIGURE_MODULE: WFLYSRV0153:
Failed to process phase CONFIGURE_MODULE of deployment "basebundle-1.0.0.jar"
at
org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:154)
[wildfly-server-2.2.0.Final.jar:2.2.0.Final]
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
[jboss-msc-1.2.6.Final.jar:1.2.6.Final]
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
[jboss-msc-1.2.6.Final.jar:1.2.6.Final]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[rt.jar:1.8.0_91]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[rt.jar:1.8.0_91]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_91]
Caused by: org.jboss.msc.service.DuplicateServiceException: Service
jboss.module.spec.service."deployment.basebundle-1.0.0.jar".main is already
registered
at
org.jboss.msc.service.ServiceRegistrationImpl.setInstance(ServiceRegistrationImpl.java:158)
[jboss-msc-1.2.6.Final.jar:1.2.6.Final]
at
org.jboss.msc.service.ServiceControllerImpl.startInstallation(ServiceControllerImpl.java:235)
[jboss-msc-1.2.6.Final.jar:1.2.6.Final]
at org.jboss.msc.service.ServiceContainerImpl.install(ServiceContainerImpl.java:768)
[jboss-msc-1.2.6.Final.jar:1.2.6.Final]
at org.jboss.msc.service.ServiceTargetImpl.install(ServiceTargetImpl.java:223)
[jboss-msc-1.2.6.Final.jar:1.2.6.Final]
at
org.jboss.msc.service.ServiceControllerImpl$ChildServiceTarget.install(ServiceControllerImpl.java:2401)
[jboss-msc-1.2.6.Final.jar:1.2.6.Final]
at org.jboss.msc.service.ServiceBuilderImpl.install(ServiceBuilderImpl.java:317)
[jboss-msc-1.2.6.Final.jar:1.2.6.Final]
at
org.jboss.as.osgi.service.ModuleLoaderIntegration$FrameworkModuleLoaderImpl.addModuleSpec(ModuleLoaderIntegration.java:208)
at
org.jboss.osgi.framework.internal.ModuleManagerImpl.createHostModule(ModuleManagerImpl.java:325)
at
org.jboss.osgi.framework.internal.ModuleManagerImpl.addModule(ModuleManagerImpl.java:207)
at
org.jboss.osgi.framework.internal.FrameworkResolverImpl.addModules(FrameworkResolverImpl.java:304)
at
org.jboss.osgi.framework.internal.FrameworkResolverImpl.applyResolverResults(FrameworkResolverImpl.java:249)
at
org.jboss.osgi.framework.internal.FrameworkResolverImpl.resolveInternal(FrameworkResolverImpl.java:164)
at
org.jboss.osgi.framework.internal.FrameworkResolverImpl.resolveAndApply(FrameworkResolverImpl.java:109)
at
org.jboss.as.osgi.deployment.BundleResolveProcessor.resolveBundle(BundleResolveProcessor.java:81)
at
org.jboss.as.osgi.deployment.BundleResolveProcessor.deploy(BundleResolveProcessor.java:68)
at
org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:147)
[wildfly-server-2.2.0.Final.jar:2.2.0.Final]
... 5 more
12:48:48,841 ERROR [org.jboss.as.controller.management-operation]
(management-handler-thread - 9) WFLYCTL0013: Operation ("deploy") failed -
address: ([("deployment" => "basebundle-1.0.0.jar")]) - failure
description: {
"WFLYCTL0080: Failed services" =>
{"jboss.deployment.unit.\"basebundle-1.0.0.jar\".CONFIGURE_MODULE"
=> "org.jboss.msc.service.StartException in service
jboss.deployment.unit.\"basebundle-1.0.0.jar\".CONFIGURE_MODULE: WFLYSRV0153:
Failed to process phase CONFIGURE_MODULE of deployment \"basebundle-1.0.0.jar\"
Caused by: org.jboss.msc.service.DuplicateServiceException: Service
jboss.module.spec.service.\"deployment.basebundle-1.0.0.jar\".main is already
registered"},
"WFLYCTL0412: Required services that are not installed:" =>
["jboss.deployment.unit.\"basebundle-1.0.0.jar\".CONFIGURE_MODULE"],
"WFLYCTL0180: Services with missing/unavailable dependencies" =>
undefined
}
12:48:48,842 ERROR [org.jboss.as.server] (management-handler-thread - 9) WFLYSRV0021:
Deploy of deployment "basebundle-1.0.0.jar" was rolled back with the following
failure message:
{
"WFLYCTL0080: Failed services" =>
{"jboss.deployment.unit.\"basebundle-1.0.0.jar\".CONFIGURE_MODULE"
=> "org.jboss.msc.service.StartException in service
jboss.deployment.unit.\"basebundle-1.0.0.jar\".CONFIGURE_MODULE: WFLYSRV0153:
Failed to process phase CONFIGURE_MODULE of deployment \"basebundle-1.0.0.jar\"
Caused by: org.jboss.msc.service.DuplicateServiceException: Service
jboss.module.spec.service.\"deployment.basebundle-1.0.0.jar\".main is already
registered"},
"WFLYCTL0412: Required services that are not installed:" =>
["jboss.deployment.unit.\"basebundle-1.0.0.jar\".CONFIGURE_MODULE"],
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)