[
https://issues.jboss.org/browse/WFLY-1463?page=com.atlassian.jira.plugin....
]
Scott Marlow edited comment on WFLY-1463 at 6/6/13 1:54 PM:
------------------------------------------------------------
For application that use Hibernate 4.1.x jars, we need to make a code change to
(automatically) detect if the application sets persistence unit property
"hibernate.ejb.use_class_enhancer" so we know whether to start the persistence
unit before other deployers might read application classes (after that happens, they
can't be enhanced/rewritten).
For applications that use Hibernate 4.3.x jars, we already check if the
"hibernate.ejb.use_class_enhancer" is set to true and if it is, we start the
PersistenceUnitService early during FIRST_MODULE_USE (which means BeanManager will not be
accessible and is not supported). I verified that setting pu property
"jboss.as.jpa.classtransformer" to false works around this problem with
non-Hibernate persistence providers.
This should be documented in the jpa documentation.
was (Author: smarlow):
For application that use Hibernate 4.1.x jars, we need to make a code change to
(automatically) detect if the application sets persistence unit property
"hibernate.ejb.use_class_enhancer" so we know whether to start the persistence
unit before other deployers might read application classes (after that happens, they
can't be enhanced/rewritten).
For applications that use Hibernate 4.3.x jars, we already check if the
"hibernate.ejb.use_class_enhancer" is set to true and if it is, we start the
PersistenceUnitService early during FIRST_MODULE_USE (which means BeanManager will not be
accessible and is not supported). I verified that setting pu property
"jboss.as.jpa.classtransformer" to false works around this problem with
non-Hibernate persistence providers.
This should documented in the jpa documentation.
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