Skip to content

Commit d95f160

Browse files
mbelladebeikov
authored andcommitted
HHH-17612 Prevent logging injection error for envers static metamodel
1 parent b2502b4 commit d95f160

File tree

1 file changed

+19
-6
lines changed

1 file changed

+19
-6
lines changed

hibernate-core/src/main/java/org/hibernate/metamodel/internal/MetadataContext.java

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -824,15 +824,28 @@ private static <X> void injectField(
824824
// + "; expected type : " + attribute.getClass().getName()
825825
// + "; encountered type : " + field.getType().getName()
826826
// );
827-
LOG.illegalArgumentOnStaticMetamodelFieldInjection(
828-
metamodelClass.getName(),
829-
name,
830-
model.getClass().getName(),
831-
field.getType().getName()
832-
);
827+
// Avoid logging an error for Enver's default revision classes that are both entities and mapped-supers.
828+
// This is a workaround for https://hibernate.atlassian.net/browse/HHH-17612
829+
if ( !isDefaultEnversRevisionType( metamodelClass ) ) {
830+
LOG.illegalArgumentOnStaticMetamodelFieldInjection(
831+
metamodelClass.getName(),
832+
name,
833+
model.getClass().getName(),
834+
field.getType().getName()
835+
);
836+
}
833837
}
834838
}
835839

840+
private static boolean isDefaultEnversRevisionType(Class<?> metamodelClass) {
841+
return Set.of(
842+
"org.hibernate.envers.DefaultRevisionEntity_",
843+
"org.hibernate.envers.DefaultTrackingModifiedEntitiesRevisionEntity_",
844+
"org.hibernate.envers.enhanced.SequenceIdRevisionEntity_",
845+
"org.hibernate.envers.enhanced.SequenceIdTrackingModifiedEntitiesRevisionEntity_"
846+
).contains( metamodelClass.getName() );
847+
}
848+
836849
public MappedSuperclassDomainType<?> locateMappedSuperclassType(MappedSuperclass mappedSuperclass) {
837850
return mappedSuperclassByMappedSuperclassMapping.get( mappedSuperclass );
838851
}

0 commit comments

Comments
 (0)