Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions ci/quarkus.Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ pipeline {
script {
dir('hibernate') {
checkout scm
sh "./gradlew publishToMavenLocal -PmavenMirror=nexus-load-balancer-c4cf05fd92f43ef8.elb.us-east-1.amazonaws.com --no-daemon -Dmaven.repo.local=${env.WORKSPACE}/.m2repository"
sh "./gradlew clean publishToMavenLocal -x test --no-scan --no-daemon --no-build-cache --stacktrace -PmavenMirror=nexus-load-balancer-c4cf05fd92f43ef8.elb.us-east-1.amazonaws.com -Dmaven.repo.local=${env.WORKSPACE}/.m2repository"
script {
env.HIBERNATE_VERSION = sh (
script: "grep hibernateVersion gradle/version.properties|cut -d'=' -f2",
Expand All @@ -42,7 +42,12 @@ pipeline {
}
dir('quarkus') {
sh "git clone -b 3.15 --single-branch https://github.com/quarkusio/quarkus.git . || git reset --hard && git clean -fx && git pull"
sh "sed -i 's@<hibernate-orm.version>.*</hibernate-orm.version>@<hibernate-orm.version>${env.HIBERNATE_VERSION}</hibernate-orm.version>@' bom/application/pom.xml"
script {
def sedStatus = sh (script: "sed -i 's@<hibernate-orm.version>.*</hibernate-orm.version>@<hibernate-orm.version>${env.HIBERNATE_VERSION}</hibernate-orm.version>@' pom.xml", returnStatus: true)
if ( sedStatus != 0 ) {
throw new IllegalArgumentException( "Unable to replace hibernate version in Quarkus pom. Got exit code $sedStatus" )
}
}
// Need to override the default maven configuration this way, because there is no other way to do it
sh "sed -i 's/-Xmx5g/-Xmx2048m/' ./.mvn/jvm.config"
sh "echo -e '\\n-XX:MaxMetaspaceSize=1024m'>>./.mvn/jvm.config"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
* considered temporary and are usually also {@linkplain Deprecated deprecated}.
*/
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Retention(RetentionPolicy.CLASS)
@Documented
public @interface Compatibility {
}
2 changes: 1 addition & 1 deletion hibernate-core/src/main/java/org/hibernate/cfg/Unsafe.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
* are largely considered unsupported.
*/
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Retention(RetentionPolicy.CLASS)
@Documented
public @interface Unsafe {
}
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ public class EntityInitializerImpl extends AbstractInitializer<EntityInitializer
private final @Nullable DomainResultAssembler<Object> rowIdAssembler;

private final DomainResultAssembler<?>[][] assemblers;
private final @Nullable Initializer<?>[] allInitializers;
private final @Nullable Initializer<?>[][] subInitializers;
private final @Nullable Initializer<?>[][] subInitializersForResolveFromInitialized;
private final @Nullable Initializer<?>[][] collectionContainingSubInitializers;
Expand Down Expand Up @@ -279,8 +280,10 @@ public EntityInitializerImpl(
? rowIdResult.createResultAssembler( this, creationState )
: null;

final int fetchableCount = entityDescriptor.getNumberOfFetchables();
final Collection<EntityMappingType> subMappingTypes = rootEntityDescriptor.getSubMappingTypes();
final DomainResultAssembler<?>[][] assemblers = new DomainResultAssembler[subMappingTypes.size() + 1][];
final Initializer<?>[] allInitializers = new Initializer<?>[fetchableCount];
final Initializer<?>[][] subInitializers = new Initializer<?>[subMappingTypes.size() + 1][];
final Initializer<?>[][] eagerSubInitializers = new Initializer<?>[subMappingTypes.size() + 1][];
final Initializer<?>[][] collectionContainingSubInitializers = new Initializer<?>[subMappingTypes.size() + 1][];
Expand All @@ -296,8 +299,7 @@ public EntityInitializerImpl(
}

boolean hasLazySubInitializers = false;
final int size = entityDescriptor.getNumberOfFetchables();
for ( int i = 0; i < size; i++ ) {
for ( int i = 0; i < fetchableCount; i++ ) {
final AttributeMapping attributeMapping = entityDescriptor.getFetchable( i ).asAttributeMapping();
final Fetch fetch = resultDescriptor.findFetch( attributeMapping );
final DomainResultAssembler<?> stateAssembler = fetch == null
Expand All @@ -310,12 +312,13 @@ public EntityInitializerImpl(

final Initializer<?> subInitializer = stateAssembler.getInitializer();
if ( subInitializer != null ) {
allInitializers[i] = subInitializer;
if ( subInitializers[subclassId] == null ) {
subInitializers[subclassId] = new Initializer<?>[size];
eagerSubInitializers[subclassId] = new Initializer<?>[size];
collectionContainingSubInitializers[subclassId] = new Initializer<?>[size];
lazySets[subclassId] = new BitSet( size );
maybeLazySets[subclassId] = new BitSet( size );
subInitializers[subclassId] = new Initializer<?>[fetchableCount];
eagerSubInitializers[subclassId] = new Initializer<?>[fetchableCount];
collectionContainingSubInitializers[subclassId] = new Initializer<?>[fetchableCount];
lazySets[subclassId] = new BitSet( fetchableCount );
maybeLazySets[subclassId] = new BitSet( fetchableCount );
}
subInitializers[subclassId][stateArrayPosition] = subInitializer;
if ( subInitializer.isEager() ) {
Expand Down Expand Up @@ -349,11 +352,11 @@ public EntityInitializerImpl(
updatableAttributeMutabilityPlans[subMappingType.getSubclassId()][stateArrayPosition] = updatableAttributeMutabilityPlans[subclassId][stateArrayPosition];
if ( subInitializer != null ) {
if ( subInitializers[subMappingType.getSubclassId()] == null ) {
subInitializers[subMappingType.getSubclassId()] = new Initializer<?>[size];
eagerSubInitializers[subMappingType.getSubclassId()] = new Initializer<?>[size];
collectionContainingSubInitializers[subMappingType.getSubclassId()] = new Initializer<?>[size];
lazySets[subMappingType.getSubclassId()] = new BitSet(size);
maybeLazySets[subMappingType.getSubclassId()] = new BitSet(size);
subInitializers[subMappingType.getSubclassId()] = new Initializer<?>[fetchableCount];
eagerSubInitializers[subMappingType.getSubclassId()] = new Initializer<?>[fetchableCount];
collectionContainingSubInitializers[subMappingType.getSubclassId()] = new Initializer<?>[fetchableCount];
lazySets[subMappingType.getSubclassId()] = new BitSet(fetchableCount);
maybeLazySets[subMappingType.getSubclassId()] = new BitSet(fetchableCount);
}
subInitializers[subMappingType.getSubclassId()][stateArrayPosition] = subInitializer;
eagerSubInitializers[subMappingType.getSubclassId()][stateArrayPosition] = eagerSubInitializers[subclassId][stateArrayPosition];
Expand Down Expand Up @@ -411,6 +414,7 @@ public EntityInitializerImpl(
}

this.assemblers = assemblers;
this.allInitializers = allInitializers;
this.subInitializers = subInitializers;
this.subInitializersForResolveFromInitialized = rootEntityDescriptor.getBytecodeEnhancementMetadata().isEnhancedForLazyLoading()
? subInitializers
Expand Down Expand Up @@ -1762,11 +1766,9 @@ protected void forEachSubInitializer(BiConsumer<Initializer<?>, RowProcessingSta
}
final EntityInitializerData entityInitializerData = (EntityInitializerData) data;
if ( entityInitializerData.concreteDescriptor == null ) {
for ( Initializer<?>[] initializers : subInitializers ) {
for ( Initializer<?> initializer : initializers ) {
if ( initializer != null ) {
consumer.accept( initializer, rowProcessingState );
}
for ( Initializer<?> initializer : allInitializers ) {
if ( initializer != null ) {
consumer.accept( initializer, rowProcessingState );
}
}
}
Expand Down
Loading