Yoann Rodière (
https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%...
) *created* an issue
Hibernate ORM (
https://hibernate.atlassian.net/browse/HHH?atlOrigin=eyJpIjoiNzBlYmI0YmJi...
) / Task (
https://hibernate.atlassian.net/browse/HHH-17034?atlOrigin=eyJpIjoiNzBlYm...
) HHH-17034 (
https://hibernate.atlassian.net/browse/HHH-17034?atlOrigin=eyJpIjoiNzBlYm...
) Bytecode enhancement leads to broken constructor for a generic embedded field in a twice
removed MappedSuperclass (
https://hibernate.atlassian.net/browse/HHH-17034?atlOrigin=eyJpIjoiNzBlYm...
)
Issue Type: Task Assignee: Unassigned Created: 04/Aug/2023 07:40 AM Fix Versions: 6.3.0,
6.2.8 Priority: Major Reporter: Yoann Rodière (
https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%...
)
Basically
https://hibernate.atlassian.net/browse/HHH-16832 but with one more level of
generic abstract classes, i.e. with the model below.
I will send a PR with a reproducer.
The exception:
java.lang.NoSuchMethodError:
'org.hibernate.orm.test.bytecode.enhance.internal.bytebuddy.DirtyCheckingWithEmbeddableAndTwiceRemovedNonVisibleGenericMappedSuperclassTest$MyAbstractEmbeddable
org.hibernate.orm.test.bytecode.enhance.internal.bytebuddy.DirtyCheckingWithEmbeddableAndTwiceRemovedNonVisibleGenericMappedSuperclassTest$MyMappedSuperclass.$$_hibernate_read_embedded()'
at
org.hibernate.orm.test.bytecode.enhance.internal.bytebuddy.DirtyCheckingWithEmbeddableAndTwiceRemovedNonVisibleGenericMappedSuperclassTest$MyEntity.$$_hibernate_write_embedded(DirtyCheckingWithEmbeddableAndTwiceRemovedNonVisibleGenericMappedSuperclassTest.java)
at
org.hibernate.orm.test.bytecode.enhance.internal.bytebuddy.MyNonVisibleGenericMappedSuperclass.setEmbedded(MyNonVisibleGenericMappedSuperclass.java:25)
at
org.hibernate.orm.test.bytecode.enhance.internal.bytebuddy.DirtyCheckingWithEmbeddableAndTwiceRemovedNonVisibleGenericMappedSuperclassTest$MyEntity.<init>(DirtyCheckingWithEmbeddableAndTwiceRemovedNonVisibleGenericMappedSuperclassTest.java:195)
The model:
@MappedSuperclass
public abstract class MyAbstractEmbeddable {
}
@Embeddable
public class MyEmbeddable extends MyAbstractEmbeddable {
@Column
private String text;
public MyEmbeddable() {
}
private MyEmbeddable(String text) {
this.text = text;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
}
@MappedSuperclass
public abstract class MyMappedSuperclass<C extends MyAbstractEmbeddable>
extends MyNonVisibleGenericMappedSuperclass<C> {
}
@Entity(name = "myentity")
public class MyEntity extends MyMappedSuperclass<MyEmbeddable> {
@Id
private Integer id;
public MyEntity() {
}
private MyEntity(Integer id, String text) {
this.id = id;
setEmbedded( new MyEmbeddable( text ) );
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
}
// This class must not be nested in the test class, otherwise its private fields will be
visible
// from subclasses and we won't reproduce the bug.
@MappedSuperclass
public abstract class MyNonVisibleGenericMappedSuperclass<C> {
@Embedded
private C embedded;
public C getEmbedded() {
return embedded;
}
public void setEmbedded(C embedded) {
this.embedded = embedded;
}
}
(
https://hibernate.atlassian.net/browse/HHH-17034#add-comment?atlOrigin=ey...
) Add Comment (
https://hibernate.atlassian.net/browse/HHH-17034#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#100233- sha1:06f5c37 )