Cédric Tabin (
https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%...
) *created* an issue
Hibernate ORM (
https://hibernate.atlassian.net/browse/HHH?atlOrigin=eyJpIjoiNjRhZGVlYTg2...
) / Bug (
https://hibernate.atlassian.net/browse/HHH-16412?atlOrigin=eyJpIjoiNjRhZG...
) HHH-16412 (
https://hibernate.atlassian.net/browse/HHH-16412?atlOrigin=eyJpIjoiNjRhZG...
) java.lang.ClassCircularityError after upgrading to 6.2.0.Final (
https://hibernate.atlassian.net/browse/HHH-16412?atlOrigin=eyJpIjoiNjRhZG...
)
Issue Type: Bug Affects Versions: 6.2.0 Assignee: Unassigned Components:
bytecode-enhancement Created: 31/Mar/2023 03:03 AM Environment: Payara-embedded-all
6.2023.1 with enhanced entities maven-plugin 6.2.0.Final. Priority: Major Reporter: Cédric
Tabin (
https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%...
)
Hello,
Our entities are enhanced at compile-time through the maven plugin. When the application
is deployed, we get the following error:
SEVERE: Exception during lifecycle processing
java.lang.ClassCircularityError:
org/hibernate/bytecode/enhance/spi/EnhancementContextWrapper
at
org.hibernate.jpa.internal.enhance.EnhancingClassTransformerImpl.transform(EnhancingClassTransformerImpl.java:50)
at
org.glassfish.persistence.jpa.ServerProviderContainerContractInfo$1.transform(ServerProviderContainerContractInfo.java:101)
at com.sun.enterprise.loader.ASURLClassLoader.findClass(ASURLClassLoader.java:734)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587)
at
com.sun.enterprise.loader.CurrentBeforeParentClassLoader.loadClass(CurrentBeforeParentClassLoader.java:83)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
at
org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:166)
at
org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1380)
at
org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1451)
at
org.hibernate.jpa.HibernatePersistenceProvider.createContainerEntityManagerFactory(HibernatePersistenceProvider.java:142)
at
org.glassfish.persistence.jpa.PersistenceUnitLoader.loadPU(PersistenceUnitLoader.java:207)
at
org.glassfish.persistence.jpa.PersistenceUnitLoader.<init>(PersistenceUnitLoader.java:114)
at org.glassfish.persistence.jpa.JPADeployer$1.visitPUD(JPADeployer.java:267)
at
org.glassfish.persistence.jpa.JPADeployer$PersistenceUnitDescriptorIterator.iteratePUDs(JPADeployer.java:571)
at org.glassfish.persistence.jpa.JPADeployer.createEMFs(JPADeployer.java:286)
at org.glassfish.persistence.jpa.JPADeployer.prepare(JPADeployer.java:183)
at
com.sun.enterprise.v3.server.ApplicationLifecycle.prepareModule(ApplicationLifecycle.java:1197)
at
org.glassfish.javaee.full.deployment.EarDeployer.prepareBundle(EarDeployer.java:301)
at
org.glassfish.javaee.full.deployment.EarDeployer.lambda$prepare$0(EarDeployer.java:164)
at
org.glassfish.javaee.full.deployment.EarDeployer.doOnBundles(EarDeployer.java:221)
at
org.glassfish.javaee.full.deployment.EarDeployer.doOnAllTypedBundles(EarDeployer.java:233)
at
org.glassfish.javaee.full.deployment.EarDeployer.doOnAllBundles(EarDeployer.java:259)
at org.glassfish.javaee.full.deployment.EarDeployer.prepare(EarDeployer.java:162)
at
com.sun.enterprise.v3.server.ApplicationLifecycle.prepareModule(ApplicationLifecycle.java:1197)
at
com.sun.enterprise.v3.server.ApplicationLifecycle.prepare(ApplicationLifecycle.java:511)
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:612)
at
com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:556)
at
com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:552)
at
java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/javax.security.auth.Subject.doAs(Subject.java:376)
at
com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:551)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:582)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:574)
at
java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/javax.security.auth.Subject.doAs(Subject.java:376)
at
com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:573)
at
com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1497)
at
com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1869)
at
com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1755)
at
com.sun.enterprise.admin.cli.embeddable.DeployerImpl.deploy(DeployerImpl.java:131)
...
The only thing we changed was the version of Hibernate (from 6.1.7 which worked fine to
6.2.0).
Also, we denoted a strange behavior of the enhancer, because after enhancement, the
entities field became public which is unattended.
Our entities are very basic (only private annotated fields an public getters/setters),
there are only some inheritance of generic fields:
@Entity
@Table(name = "mytable" )
public class MyTable extends AbstractSimpleTable<MyTablePK> {
private static final long serialVersionUID = 1L;
@EmbeddedId
private MyTablePK mytablePK;
@Column(name = "COLUMN1" )
private String column1;
@Column(name = "COLUMN2" )
private String column2;
public MyTablePK getMytablePK() {
return sysusrPK;
}
public void setMytablePK(MyTablePK mytablePK) {
this.mytablePK = mytablePK;
}
public String getColumn1() {
return column1;
}
public void setColumn1( String column1) {
this.column1 = column1;
}
public String getColumn2() {
return column2;
}
public void setColumn2( String column2) {
this.column2 = column2;
}
}
And the superclass:
@MappedSuperclass
public abstract class AbstractSimpleTable<P extends Shareable> {
@Lob
@Column(name = "GENERICFIELD" )
private String genericfield;
public String getGenericfield() {
return genericfield;
}
public void setGenericfield( String genericfield) {
this.genericfield = genericfield;
}
}
Thanks for the help !
(
https://hibernate.atlassian.net/browse/HHH-16412#add-comment?atlOrigin=ey...
) Add Comment (
https://hibernate.atlassian.net/browse/HHH-16412#add-comment?atlOrigin=ey...
)
Get Jira notifications on your phone! Download the Jira Cloud app for Android (
https://play.google.com/store/apps/details?id=com.atlassian.android.jira....
) or iOS (
https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=Em...
) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100221- sha1:57c27f3 )