If I change one of the failing tests to move the @Id to the fields, I get a different failure:

diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/bytecode/enhancement/merge/MergeDetachedNonCascadedCollectionInEmbeddableTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/bytecode/enhancement/merge/MergeDetachedNonCascaded
CollectionInEmbeddableTest.java
index e7cea27725..8900c29a4f 100644
--- a/hibernate-core/src/test/java/org/hibernate/orm/test/bytecode/enhancement/merge/MergeDetachedNonCascadedCollectionInEmbeddableTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/bytecode/enhancement/merge/MergeDetachedNonCascadedCollectionInEmbeddableTest.java
@@ -37,7 +37,7 @@import org.junit.jupiter.api.Test;
               }
)
@SessionFactory
-@BytecodeEnhanced
+@BytecodeEnhanced(testEnhancedClasses = {Heading.class, Grouping.class, Thing.class})
public class MergeDetachedNonCascadedCollectionInEmbeddableTest {

       @Test
@@ -64,12 +64,12 @@public class MergeDetachedNonCascadedCollectionInEmbeddableTest {

       @Entity(name = "Heading")
       public static class Heading {
+@Id
+@GeneratedValue
               private long id;
               private String name;
               private Grouping grouping;

-               @Id
-               @GeneratedValue
               public long getId() {
                       return id;
               }
@@ -112,10 +112,10 @@public class MergeDetachedNonCascadedCollectionInEmbeddableTest {

       @Entity(name = "Thing")
       public static class Thing {
-               private long id;
-
               @Id
               @GeneratedValue
+private long id;
+
               public long getId() {
                       return id;
               }

Error:

<testcase name="initializationError"classname="org.hibernate.orm.test.bytecode.enhancement.merge.MergeDetachedNonCascadedCollectionInEmbeddableTest"time="0.001"> <failure message="org.hibernate.MappingException: Basic collection has element type 'org.hibernate.orm.test.bytecode.enhancement.merge.MergeDetachedNonCascadedCollectionInEmbeddableTest$Thing' which is nota known basic type (attribute is notannota ted '@ElementCollection', '@OneToMany', or '@ManyToMany')"type="org.hibernate.MappingException">org.hibernate.MappingException: Basic collection has element type 'org.hibernate.orm.test.bytecode.enhancement.merge.MergeDetachedNonCascadedCollectionInEmb eddableTest$Thing' which is nota known basic type (attribute is notannotated '@ElementCollection', '@OneToMany', or '@ManyToMany')        at app//org.hibernate.type.descriptor.java.spi.BasicCollectionJavaType.getRecommendedJdbcType(BasicCollectionJavaType.java:72)        at app//org.hibernate.boot.model.process.internal.InferredBasicValueResolver.from(InferredBasicValueResolver.java:195)

So further test changes may be needed but I have to ask if I should be modifying the failing tests?  Or should we introduce a way for tests/applications to configure a service or configuration property to determine whether the https://github.com/hibernate/hibernate-orm/pull/9136 change applies to their application (via config property) or the platform that ORM is part of (via new service)?

I also single stepped through the https://github.com/hibernate/hibernate-orm/pull/9136 changes while running the MergeDetachedNonCascadedCollectionInEmbeddableTest.testMergeDetached test to verify that nothing unexpected is happening in the added code while running this test.

Scott

On 10/25/24 1:50 PM, Scott Marlow wrote:

https://github.com/hibernate/hibernate-orm/pull/9136 seems to cause the below tests to fail.  Why is that?  The idea of this pull request is to disable enhancement for entity classes that have @Id/@Access(PROPERTY) on property accessors as a workaround for https://hibernate.atlassian.net/browse/HHH-16572.

List of failures:

Enhanced:MergeDetachedNonCascadedCollectionInEmbeddableTest > Enhanced:testMergeDetached(SessionFactoryScope) FAILED     java.lang.NoSuchMethodError at MergeDetachedNonCascadedCollectionInEmbeddableTest.java:47

Enhanced:LazyGroupWithInheritanceAllowProxyTest > Enhanced:queryEntityWithAssociationToAbstract(SessionFactoryScope) FAILED     org.opentest4j.AssertionFailedError at LazyGroupWithInheritanceAllowProxyTest.java:113

Enhanced:LazyGroupWithInheritanceAllowProxyTest > Enhanced:testMergingUninitializedProxy(SessionFactoryScope) FAILED     java.lang.ClassCastException at LazyGroupWithInheritanceAllowProxyTest.java:91

Enhanced:ManyToOneNoProxyTest > Enhanced:testSelect(SessionFactoryScope) FAILED
    java.lang.NoSuchMethodError at ManyToOneNoProxyTest.java:73

Enhanced:EnhancedProxyCacheTest > Enhanced:testPreferenceFor2LCOverUninitializedProxy(SessionFactoryScope) FAILED
    java.lang.ClassCastException at EnhancedProxyCacheTest.java:80

Enhanced:LobUnfetchedPropertyTest > Enhanced:testNClob(SessionFactoryScope) FAILED     java.lang.UnsupportedOperationException at LobUnfetchedPropertyTest.java:114

Enhanced:UnexpectedDeleteTest3 > Enhanced:test(SessionFactoryScope) FAILED
    java.lang.RuntimeException at UnexpectedDeleteTest3.java:42
        Caused by: org.hibernate.PropertyNotFoundException at UnexpectedDeleteTest3.java:42

Enhanced:LobUnfetchedPropertyTest > Enhanced:testClob(SessionFactoryScope) FAILED     java.lang.UnsupportedOperationException at LobUnfetchedPropertyTest.java:82

Enhanced:LobUnfetchedPropertyTest > Enhanced:testBlob(SessionFactoryScope) FAILED     java.lang.UnsupportedOperationException at LobUnfetchedPropertyTest.java:57

Enhanced:AbstractManyToOneNoProxyTest > Enhanced:testSelect(SessionFactoryScope) FAILED
    java.lang.NoSuchMethodError at AbstractManyToOneNoProxyTest.java:72

Enhanced:CascadeDeleteManyToOneTest > Enhanced:testDetachedWithInitializedAssociation(SessionFactoryScope) FAILED
    java.lang.AssertionError at CascadeDeleteManyToOneTest.java:113

Enhanced:CascadeDeleteManyToOneTest > Enhanced:testManagedWithInitializedAssociation(SessionFactoryScope) FAILED
    java.lang.AssertionError at CascadeDeleteManyToOneTest.java:86

Enhanced:CascadeDeleteCollectionTest > Enhanced:testManagedWithUninitializedAssociation(SessionFactoryScope) FAILED
    java.lang.NoSuchMethodError at CascadeDeleteCollectionTest.java:61

Enhanced:CascadeDeleteCollectionTest > Enhanced:testDetachedWithInitializedAssociation(SessionFactoryScope) FAILED
    java.lang.NoSuchMethodError at CascadeDeleteCollectionTest.java:61

Enhanced:CascadeDeleteCollectionTest > Enhanced:testDetachedWithUninitializedAssociation(SessionFactoryScope) FAILED
    java.lang.NoSuchMethodError at CascadeDeleteCollectionTest.java:61

Enhanced:CascadeDeleteCollectionTest > Enhanced:testManagedWithInitializedAssociation(SessionFactoryScope) FAILED
    java.lang.NoSuchMethodError at CascadeDeleteCollectionTest.java:61

Enhanced:CascadeDeleteCollectionTest > Enhanced:testDetachedOriginal(SessionFactoryScope) FAILED
    java.lang.NoSuchMethodError at CascadeDeleteCollectionTest.java:61

Enhanced:CascadeDeleteCollectionWithCollectionInDefaultFetchGroupFalseTest > Enhanced:testDetachedWithInitializedAssociation(SessionFactoryScope) FAILED     java.lang.NoSuchMethodError at CascadeDeleteCollectionWithCollectionInDefaultFetchGroupFalseTest.java:71

Enhanced:CascadeDeleteCollectionWithCollectionInDefaultFetchGroupFalseTest > Enhanced:testManagedWithInitializedAssociation(SessionFactoryScope) FAILED     java.lang.NoSuchMethodError at CascadeDeleteCollectionWithCollectionInDefaultFetchGroupFalseTest.java:71

Enhanced:CascadeDeleteCollectionWithCollectionInDefaultFetchGroupFalseTest > Enhanced:testDetachedOriginal(SessionFactoryScope) FAILED     java.lang.NoSuchMethodError at CascadeDeleteCollectionWithCollectionInDefaultFetchGroupFalseTest.java:71

Enhanced:CascadeDeleteCollectionWithCollectionInDefaultFetchGroupFalseTest > Enhanced:testDetachedWithUninitializedAssociation(SessionFactoryScope) FAILED     java.lang.NoSuchMethodError at CascadeDeleteCollectionWithCollectionInDefaultFetchGroupFalseTest.java:71

Enhanced:CascadeDeleteCollectionWithCollectionInDefaultFetchGroupFalseTest > Enhanced:testManagedWithUninitializedAssociation(SessionFactoryScope) FAILED     java.lang.NoSuchMethodError at CascadeDeleteCollectionWithCollectionInDefaultFetchGroupFalseTest.java:71

Enhanced:MergeProxyTest > Enhanced:testMergeDetachInitializedProxy(SessionFactoryScope) FAILED
    java.lang.AssertionError at MergeProxyTest.java:105

Enhanced:MergeProxyTest > Enhanced:testMergeDetachUninitializedProxy(SessionFactoryScope) FAILED
    java.lang.AssertionError at MergeProxyTest.java:72

Enhanced:MergeProxyTest > Enhanced:testMergeDetachInitializedByAccessProxy(SessionFactoryScope) FAILED
    java.lang.AssertionError at MergeProxyTest.java:150

Enhanced[EnhancerTestContext]:BidirectionalLazyTest > Enhanced[EnhancerTestContext]:testRemoveEntityWithLinkedLazyManyToOne(SessionFactoryScope) FAILED
    java.lang.AssertionError at BidirectionalLazyTest.java:268

Enhanced:LazyGroupWithInheritanceTest > Enhanced:loadEntityWithAssociationToAbstract(SessionFactoryScope) FAILED
    java.lang.AssertionError at LazyGroupWithInheritanceTest.java:77

Enhanced[EnhancerTestContext]:BidirectionalLazyTest > Enhanced[EnhancerTestContext]:testRemoveWithNoRemovedEntities(SessionFactoryScope) FAILED
    java.lang.AssertionError at BidirectionalLazyTest.java:268

Enhanced[NoDirtyCheckEnhancementContext]:BidirectionalLazyTest > Enhanced[NoDirtyCheckEnhancementContext]:testRemoveEntityWithLinkedLazyManyToOne(SessionFactoryScope) FAILED
    java.lang.AssertionError at BidirectionalLazyTest.java:268

Enhanced:FetchGraphTest > Enhanced:testNullManyToOneHql(SessionFactoryScope) FAILED
    java.lang.AssertionError at FetchGraphTest.java:512

Enhanced[NoDirtyCheckEnhancementContext]:BidirectionalLazyTest > Enhanced[NoDirtyCheckEnhancementContext]:testRemoveWithNoRemovedEntities(SessionFactoryScope) FAILED
    java.lang.AssertionError at BidirectionalLazyTest.java:268

Enhanced:LazyGroupWithInheritanceTest > Enhanced:queryEntityWithAssociationToAbstract(SessionFactoryScope) FAILED     org.opentest4j.AssertionFailedError at LazyGroupWithInheritanceTest.java:108

Enhanced:MergeDetachedCascadedCollectionInEmbeddableTest > Enhanced:testMergeDetached(SessionFactoryScope) FAILED     java.lang.NoSuchMethodError at MergeDetachedCascadedCollectionInEmbeddableTest.java:53

Enhanced:JoinFetchWithEnhancementTest > Enhanced:testJoinFetchWithEnhancement(SessionFactoryScope) FAILED
    java.lang.NoSuchMethodError at JoinFetchWithEnhancementTest.java:53

Enhanced:MissingSetterWithEnhancementTest > Enhanced:testEnhancedClassMissesSetterForProperty() FAILED     org.opentest4j.AssertionFailedError at MissingSetterWithEnhancementTest.java:61

Enhanced:PropertyAccessTest > Enhanced:test(SessionFactoryScope) FAILED
    java.lang.NoSuchMethodError at PropertyAccessTest.java:39

Enhanced:LazyLoadingByEnhancerSetterTest > Enhanced:testProperty(SessionFactoryScope) FAILED org.hibernate.testing.orm.junit.FailureExpectedExtension$ExpectedFailureDidNotFail at FailureExpectedExtension.java:124

Enhanced:RemoveUninitializedLazyCollectionTest > Enhanced:testDeleteParentWithBidirOrphanDeleteCollectionBasedOnPropertyRef(SessionFactoryScope) FAILED     java.lang.NoSuchMethodError at RemoveUninitializedLazyCollectionTest.java:70

Enhanced:LazyBasicPropertyAccessTest > Enhanced:testAttachedUpdate(SessionFactoryScope) FAILED     org.opentest4j.AssertionFailedError at LazyBasicPropertyAccessTest.java:70

Enhanced:LazyBasicPropertyAccessTest > Enhanced:testDetachedUpdate(SessionFactoryScope) FAILED     org.opentest4j.AssertionFailedError at LazyBasicPropertyAccessTest.java:100

Scott

_______________________________________________
hibernate-dev mailing list -- hibernate-dev@lists.jboss.org
To unsubscribe send an email to hibernate-dev-le...@lists.jboss.org
Privacy Statement: https://www.redhat.com/en/about/privacy-policy
List Archives: 
https://lists.jboss.org/archives/list/hibernate-dev@lists.jboss.org/message/IJ64KMII73NT33OPFBZC5GPVRU4HPJIA/

Reply via email to