In the previous versions of JBoss EAP 6, entity classes in user applications which are expected to be rewritten by the persistence provider during application deployment may not be rewritten. Due to this, when sub-deployments are deployed in parallel and there are references to entity classes in other sub-deployments beyond the deployment that contains the persistence unit, the entity class definition is loaded before it is rewritten by the persistence provider. Thus affecting the performance.
This issue is fixed in the current version of JBoss EAP 6.
Description of problem:
Entity classes in user application may be enhanced (rewritten) at application deployment time by the persistence provider (to improve performance), in cooperation with the JPA subsystem deployment that registers the javax.persistence.spi.ClassTransformer before any deployment application classes have been read.
WFLY-3531 occurs when sub-deployments (e.g. WAR or EJB JAR in an EAR) are deployed in parallel (as they always are) and there are references to entity classes in other sub-deployments beyond the deployment that contains the persistence unit. Each sub-deployment will proceed through the various internal deployment phases in parallel. The fix for WFLY-3531, ensures that all sub-deployments will wait until the persistence unit(s) are deployed before starting (unless the jboss.as.jpa.classtransformer persistence unit hint is set to false).
This problem was first reported by a community user that is using EclipseLink and found that EclipseLink weaving was not working. Certain other EclipseLink features depend on weaving (class enhancement) to work. Otherwise, I don't expect that users would know which entity classes are enhanced and which ones are not.
Steps to Reproduce:
Scott Marlow <email@example.com> updated the status of jira WFLY-3531 to Closed
mod subject, add prefix.
verified on EAP 6.4.0.DR2