Skip to content

Commit

Permalink
HHH-17988 MetadataContext should consistently use ClassLoaderService
Browse files Browse the repository at this point in the history
  • Loading branch information
Sanne committed Apr 22, 2024
1 parent e84370e commit beefee9
Showing 1 changed file with 6 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
import org.hibernate.AssertionFailure;
import org.hibernate.Internal;
import org.hibernate.MappingException;
import org.hibernate.boot.registry.classloading.spi.ClassLoaderService;
import org.hibernate.boot.registry.classloading.spi.ClassLoadingException;
import org.hibernate.boot.spi.MetadataImplementor;
import org.hibernate.internal.EntityManagerMessageLogger;
import org.hibernate.internal.HEMLogging;
Expand Down Expand Up @@ -103,6 +105,7 @@ public class MetadataContext {
*/
private final List<PersistentClass> stackOfPersistentClassesBeingProcessed = new ArrayList<>();
private final MappingMetamodel metamodel;
private final ClassLoaderService classLoaderService;

public MetadataContext(
JpaMetamodelImplementor jpaMetamodel,
Expand All @@ -112,6 +115,7 @@ public MetadataContext(
JpaMetaModelPopulationSetting jpaMetaModelPopulationSetting,
RuntimeModelCreationContext runtimeModelCreationContext) {
this.jpaMetamodel = jpaMetamodel;
this.classLoaderService = jpaMetamodel.getServiceRegistry().getService( ClassLoaderService.class );
this.metamodel = mappingMetamodel;
this.knownMappedSuperclasses = bootMetamodel.getMappedSuperclassMappingsCopy();
this.typeConfiguration = runtimeModelCreationContext.getTypeConfiguration();
Expand Down Expand Up @@ -652,7 +656,7 @@ private <X> void populateStaticMetamodel(ManagedDomainType<X> managedType) {
}
final String metamodelClassName = managedTypeClass.getName() + '_';
try {
final Class<?> metamodelClass = Class.forName( metamodelClassName, true, managedTypeClass.getClassLoader() );
final Class<?> metamodelClass = classLoaderService.classForName( metamodelClassName );
// we found the class; so populate it...
registerAttributes( metamodelClass, managedType );
try {
Expand All @@ -662,7 +666,7 @@ private <X> void populateStaticMetamodel(ManagedDomainType<X> managedType) {
// ignore
}
}
catch (ClassNotFoundException ignore) {
catch (ClassLoadingException ignore) {
// nothing to do...
}

Expand Down

0 comments on commit beefee9

Please sign in to comment.