[
https://issues.jboss.org/browse/WFLY-1463?page=com.atlassian.jira.plugin....
]
Jozef Hartinger commented on WFLY-1463:
---------------------------------------
There is a cycle that needs to be broken somehow. When a container-managed
EntityManagerFactory is created, this operation consists of:
# executing class transformers
# initialization of entity listeners
From the JPA SPI point of view, the creation of EMF is a single
operation and therefore 1) and 2) cannot be split apart nor is there another
initialization hook in which 2) could be performed.
--> means "depends on" hereafter
(initialization of entity listeners) --> (weld initialized) --> (class transformers
executed)
PersistenceUnitService depends on not-yet-available BeanManager
---------------------------------------------------------------
Key: WFLY-1463
URL:
https://issues.jboss.org/browse/WFLY-1463
Project: WildFly
Issue Type: Bug
Components: JPA / Hibernate
Affects Versions: 8.0.0.Alpha1
Reporter: Jozef Hartinger
Assignee: Scott Marlow
Fix For: 8.0.0.Alpha2
I am getting
{noformat}
17:12:25,453 ERROR [org.jboss.as.controller.management-operation]
(management-handler-thread - 2) JBAS014613: Operation ("deploy") failed -
address: ([("deployment" =>
"jpa_txTimeoutTestWithMockProvider.ear")]) - failure description:
{"JBAS014771: Services with missing/unavailable dependencies" =>
["jboss.persistenceunit.\"jpa_txTimeoutTestWithMockProvider.ear/ejbjar.jar#mypc\"
is missing
[jboss.deployment.subunit.\"jpa_txTimeoutTestWithMockProvider.ear\".\"ejbjar.jar\".beanmanager]"]}
17:12:25,459 ERROR [org.jboss.as.server] (management-handler-thread - 2) JBAS015870:
Deploy of deployment "jpa_txTimeoutTestWithMockProvider.ear" was rolled back
with the following failure message: {"JBAS014771: Services with missing/unavailable
dependencies" =>
["jboss.persistenceunit.\"jpa_txTimeoutTestWithMockProvider.ear/ejbjar.jar#mypc\"
is missing
[jboss.deployment.subunit.\"jpa_txTimeoutTestWithMockProvider.ear\".\"ejbjar.jar\".beanmanager]"]}
{noformat}
The problem is caused by PersistenceUnitServiceHandler.deployPersistenceUnit() which, if
the PU is deployed in a CDI-enabled archive, adds a dependency on the BeanManager service.
This happens in PersistenceBeginInstallProcessor which executes in the FIRST_MODULE_USE
phase.
However, the BeanManager service is not installed by the Weld subsystem until the INSTALL
phase.
This can be reproduced easily. Take for example the
org.jboss.as.test.integration.jpa.mockprovider.txtimeout.TxTimeoutTestCase and add an
empty beans.xml file to the ejb jar (ejbjar.addAsManifestResource(EmptyAsset.INSTANCE,
"beans.xml"))
This issue blocks proper Weld integration (implicit bean archives).
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira