]
Tom Arnold commented on WFLY-4908:
----------------------------------
[~scottmarlow], thanks for working on this.
I tested your branch with
. It looks like
replacing the dependency works. Our development process is copying new deployments over
the old ones (using scripts or links), so this should fix it for us. It would be great if
your fix could make it into the next CR/Final.
What is still broken is undeploying the dependency and then redeploying it (i.e. the test
case in this ticket). The dependency deploys but the dependent does not redeploy; touching
the dependency does cause both to redeploy. I remember having problems with this case in
JBoss AS 7 as well, so not really a regression there.
Redeploy dependent ear fails with duplicate resource error for
persistence unit
-------------------------------------------------------------------------------
Key: WFLY-4908
URL:
https://issues.jboss.org/browse/WFLY-4908
Project: WildFly
Issue Type: Bug
Components: JPA / Hibernate
Affects Versions: 8.2.0.Final, 9.0.0.CR2, 9.0.0.Final, 10.0.0.CR4
Environment: OS:
Debian GNU/Linux 8.0 (jessie)
Linux 3.16.0-4-amd64 x86_64 GNU/Linux
JVM:
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
Wildfly:
9.0.0.Final
Reporter: Юрий Витковский
Assignee: Scott Marlow
I have two EARs:
{code}
module1.ear
|
+--ejb.jar
|
+--META-INF
|
+--persistence.xml with persistence unit "module1-pu"
{code}
and
{code}
module2.ear
|
+--META-INF
| |
| +--jboss-all.xml
|
+--ejb.jar
|
+--META-INF
|
+--persistence.xml with persistence unit "module2-pu"
{code}
module2.ear/META-INF/jboss-all.xml contains:
{code:xml}
<jboss xmlns="urn:jboss:1.0">
<jboss-deployment-dependencies
xmlns="urn:jboss:deployment-dependencies:1.0">
<dependency name="module1.ear" />
</jboss-deployment-dependencies>
</jboss>
{code}
When I redeploy module1.ear, module2.ear not redeployed automatically with error:
*java.lang.IllegalStateException: WFLYCTL0075: Duplicate resource
module2.ear/ejb.jar#module2-pu* (on wildfly 8.2.0.Final: *java.lang.IllegalStateException:
JBAS014666: Duplicate resource module2.ear/ejb.jar#module2-pu*)
Full redeploy log:
{code}
09:11:31,425 INFO [org.jboss.as.jpa] (ServerService Thread Pool -- 63) WFLYJPA0011:
Stopping Persistence Unit (phase 2 of 2) Service 'module2.ear/ejb.jar#module2-pu'
09:11:31,426 INFO [org.jboss.as.jpa] (ServerService Thread Pool -- 63) WFLYJPA0011:
Stopping Persistence Unit (phase 1 of 2) Service 'module2.ear/ejb.jar#module2-pu'
09:11:31,431 INFO [org.jboss.as.jpa] (ServerService Thread Pool -- 63) WFLYJPA0011:
Stopping Persistence Unit (phase 2 of 2) Service 'module1.ear/ejb.jar#module1-pu'
09:11:31,434 INFO [org.jboss.as.jpa] (ServerService Thread Pool -- 63) WFLYJPA0011:
Stopping Persistence Unit (phase 1 of 2) Service 'module1.ear/ejb.jar#module1-pu'
09:11:31,437 INFO [org.jboss.as.server.deployment] (MSC service thread 1-1) WFLYSRV0208:
Stopped subdeployment (runtime-name: ejb.jar) in 17ms
09:11:31,438 INFO [org.jboss.as.server.deployment] (MSC service thread 1-2) WFLYSRV0028:
Stopped deployment module1.ear (runtime-name: module1.ear) in 18ms
09:11:31,495 INFO [org.jboss.as.server] (management-handler-thread - 3) WFLYSRV0009:
Undeployed "module1.ear" (runtime-name: "module1.ear")
09:11:31,495 INFO [org.jboss.as.controller] (management-handler-thread - 3) WFLYCTL0183:
Service status report
WFLYCTL0184: New missing/unsatisfied dependencies:
service jboss.deployment.unit."module1.ear".deploymentCompleteService
(missing) dependents: [service jboss.deployment.unit."module2.ear".PARSE,
service jboss.deployment.subunit."module2.ear"."ejb.jar".PARSE]
09:11:31,558 INFO [org.jboss.as.repository] (management-handler-thread - 1) WFLYDR0002:
Content removed from location
/opt/wildfly/standalone/data/content/69/baf0eeab47c006bc1f3d99b21b4355fac62d13/content
09:11:43,170 INFO [org.jboss.as.repository] (management-handler-thread - 1) WFLYDR0001:
Content added at location
/opt/wildfly/standalone/data/content/69/baf0eeab47c006bc1f3d99b21b4355fac62d13/content
09:11:43,266 INFO [org.jboss.as.server.deployment] (MSC service thread 1-2) WFLYSRV0027:
Starting deployment of "module1.ear" (runtime-name: "module1.ear")
09:11:43,268 INFO [org.jboss.as.server.deployment] (MSC service thread 1-2) WFLYSRV0207:
Starting subdeployment (runtime-name: "ejb.jar")
09:11:43,273 INFO [org.jboss.as.jpa] (MSC service thread 1-1) WFLYJPA0002: Read
persistence.xml for module1-pu
09:11:43,289 INFO [org.jboss.as.jpa] (ServerService Thread Pool -- 63) WFLYJPA0010:
Starting Persistence Unit (phase 1 of 2) Service 'module1.ear/ejb.jar#module1-pu'
09:11:43,289 INFO [org.hibernate.jpa.internal.util.LogHelper] (ServerService Thread Pool
-- 63) HHH000204: Processing PersistenceUnitInfo [
name: module1-pu
...]
09:11:43,292 INFO [org.jboss.as.jpa] (ServerService Thread Pool -- 63) WFLYJPA0010:
Starting Persistence Unit (phase 2 of 2) Service 'module1.ear/ejb.jar#module1-pu'
09:11:43,293 INFO [org.hibernate.dialect.Dialect] (ServerService Thread Pool -- 63)
HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
09:11:43,293 WARN [org.hibernate.dialect.H2Dialect] (ServerService Thread Pool -- 63)
HHH000431: Unable to determine H2 database version, certain features may not work
09:11:43,294 INFO [org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory]
(ServerService Thread Pool -- 63) HHH000397: Using ASTQueryTranslatorFactory
09:11:43,296 INFO [org.jboss.as.server.deployment] (MSC service thread 1-1) WFLYSRV0070:
Deployment restart detected for deployment module2.ear, performing full redeploy instead.
09:11:43,296 INFO [org.jboss.as.server.deployment] (MSC service thread 1-1) WFLYSRV0070:
Deployment restart detected for deployment ejb.jar, performing full redeploy instead.
09:11:43,296 INFO [org.jboss.as.server.deployment] (MSC service thread 1-1) WFLYSRV0208:
Stopped subdeployment (runtime-name: ejb.jar) in 0ms
09:11:43,297 INFO [org.jboss.as.server.deployment] (MSC service thread 1-2) WFLYSRV0028:
Stopped deployment module2.ear (runtime-name: module2.ear) in 1ms
09:11:43,298 INFO [org.jboss.as.server.deployment] (MSC service thread 1-2) WFLYSRV0027:
Starting deployment of "module2.ear" (runtime-name: "module2.ear")
09:11:43,299 INFO [org.jboss.as.server.deployment] (MSC service thread 1-2) WFLYSRV0207:
Starting subdeployment (runtime-name: "ejb.jar")
09:11:43,300 INFO [org.jboss.as.jpa] (MSC service thread 1-2) WFLYJPA0002: Read
persistence.xml for module2-pu
09:11:43,307 INFO [org.jboss.as.jpa] (ServerService Thread Pool -- 63) WFLYJPA0010:
Starting Persistence Unit (phase 1 of 2) Service 'module2.ear/ejb.jar#module2-pu'
09:11:43,308 INFO [org.hibernate.jpa.internal.util.LogHelper] (ServerService Thread Pool
-- 63) HHH000204: Processing PersistenceUnitInfo [
name: module2-pu
...]
09:11:43,312 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-4) MSC000001:
Failed to start service
jboss.deployment.subunit."module2.ear"."ejb.jar".INSTALL:
org.jboss.msc.service.StartException in service
jboss.deployment.subunit."module2.ear"."ejb.jar".INSTALL: WFLYSRV0153:
Failed to process phase INSTALL of subdeployment "ejb.jar" of deployment
"module2.ear"
at
org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:163)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: WFLYCTL0075: Duplicate resource
module2.ear/ejb.jar#module2-pu
at
org.jboss.as.controller.registry.AbstractModelResource$DefaultResourceProvider.register(AbstractModelResource.java:248)
at
org.jboss.as.controller.registry.AbstractModelResource.registerChild(AbstractModelResource.java:143)
at
org.jboss.as.jpa.processor.PersistenceUnitServiceHandler.addManagementConsole(PersistenceUnitServiceHandler.java:1128)
at
org.jboss.as.jpa.processor.PersistenceUnitServiceHandler.deployPersistenceUnitPhaseTwo(PersistenceUnitServiceHandler.java:704)
at
org.jboss.as.jpa.processor.PersistenceUnitServiceHandler.addPuService(PersistenceUnitServiceHandler.java:289)
at
org.jboss.as.jpa.processor.PersistenceUnitServiceHandler.handleJarDeployment(PersistenceUnitServiceHandler.java:162)
at
org.jboss.as.jpa.processor.PersistenceUnitServiceHandler.deploy(PersistenceUnitServiceHandler.java:133)
at
org.jboss.as.jpa.processor.PersistenceCompleteInstallProcessor.deploy(PersistenceCompleteInstallProcessor.java:55)
at
org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:156)
... 5 more
09:11:43,376 INFO [org.jboss.as.server] (management-handler-thread - 2) WFLYSRV0010:
Deployed "module1.ear" (runtime-name : "module1.ear")
09:11:43,376 INFO [org.jboss.as.controller] (management-handler-thread - 2) WFLYCTL0183:
Service status report
WFLYCTL0184: New missing/unsatisfied dependencies:
service jboss.deployment.subunit."module2.ear"."ejb.jar"
(unavailable) dependents: [service jboss.deployment.unit."module2.ear".PARSE]
service
jboss.deployment.subunit."module2.ear"."ejb.jar".STRUCTURE
(unavailable) dependents: [service jboss.deployment.unit."module2.ear".PARSE]
service
jboss.deployment.subunit."module2.ear"."ejb.jar".deploymentCompleteService
(missing) dependents: [service
jboss.deployment.unit."module2.ear".deploymentCompleteService]
WFLYCTL0185: Newly corrected services:
service jboss.deployment.unit."module1.ear".deploymentCompleteService
(new available)
WFLYCTL0186: Services which failed to start: service
jboss.deployment.subunit."module2.ear"."ejb.jar".INSTALL:
org.jboss.msc.service.StartException in service
jboss.deployment.subunit."module2.ear"."ejb.jar".INSTALL: WFLYSRV0153:
Failed to process phase INSTALL of subdeployment "ejb.jar" of deployment
"module2.ear"
{code}