Skip to content

Commit 04366bd

Browse files
committed
make a bunch of stuff in org.hibernate.engine.internal package-private
1 parent 014d311 commit 04366bd

File tree

12 files changed

+92
-111
lines changed

12 files changed

+92
-111
lines changed

hibernate-core/src/main/java/org/hibernate/engine/internal/AbstractTransactionCompletionProcessQueue.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,23 @@
1616
*
1717
* @author Steve Ebersole
1818
*/
19-
public abstract class AbstractTransactionCompletionProcessQueue<T extends CompletionCallback> {
20-
protected SharedSessionContractImplementor session;
19+
abstract class AbstractTransactionCompletionProcessQueue<T extends CompletionCallback> {
20+
SharedSessionContractImplementor session;
2121
// Concurrency handling required when transaction completion process is dynamically registered
2222
// inside event listener (HHH-7478).
23-
protected ConcurrentLinkedQueue<@NonNull T> processes = new ConcurrentLinkedQueue<>();
23+
ConcurrentLinkedQueue<@NonNull T> processes = new ConcurrentLinkedQueue<>();
2424

25-
protected AbstractTransactionCompletionProcessQueue(SharedSessionContractImplementor session) {
25+
AbstractTransactionCompletionProcessQueue(SharedSessionContractImplementor session) {
2626
this.session = session;
2727
}
2828

29-
public void register(@Nullable T process) {
29+
void register(@Nullable T process) {
3030
if ( process != null ) {
3131
processes.add( process );
3232
}
3333
}
3434

35-
public boolean hasActions() {
35+
boolean hasActions() {
3636
return !processes.isEmpty();
3737
}
3838
}

hibernate-core/src/main/java/org/hibernate/engine/internal/AfterTransactionCompletionProcessQueue.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,25 +19,25 @@
1919
/**
2020
* Encapsulates behavior needed for after transaction processing
2121
*/
22-
public class AfterTransactionCompletionProcessQueue
22+
class AfterTransactionCompletionProcessQueue
2323
extends AbstractTransactionCompletionProcessQueue<AfterCompletionCallback> {
2424

2525
private final Set<String> querySpacesToInvalidate = new HashSet<>();
2626

27-
public AfterTransactionCompletionProcessQueue(SharedSessionContractImplementor session) {
27+
AfterTransactionCompletionProcessQueue(SharedSessionContractImplementor session) {
2828
super( session );
2929
}
3030

31-
public void addSpaceToInvalidate(String space) {
31+
void addSpaceToInvalidate(String space) {
3232
querySpacesToInvalidate.add( space );
3333
}
3434

3535
@Override
36-
public boolean hasActions() {
36+
boolean hasActions() {
3737
return super.hasActions() || !querySpacesToInvalidate.isEmpty();
3838
}
3939

40-
public void afterTransactionCompletion(boolean success) {
40+
void afterTransactionCompletion(boolean success) {
4141
AfterCompletionCallback process;
4242
while ( (process = processes.poll()) != null ) {
4343
try {
@@ -61,7 +61,7 @@ public void afterTransactionCompletion(boolean success) {
6161
querySpacesToInvalidate.clear();
6262
}
6363

64-
public void executePendingBulkOperationCleanUpActions() {
64+
void executePendingBulkOperationCleanUpActions() {
6565
AfterCompletionCallback process;
6666
boolean hasPendingBulkOperationCleanUpActions = false;
6767
while ( ( process = processes.poll() ) != null ) {

hibernate-core/src/main/java/org/hibernate/engine/internal/BeforeTransactionCompletionProcessQueue.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@
1111
/**
1212
* Encapsulates behavior needed for before transaction processing
1313
*/
14-
public class BeforeTransactionCompletionProcessQueue
14+
class BeforeTransactionCompletionProcessQueue
1515
extends AbstractTransactionCompletionProcessQueue<BeforeCompletionCallback> {
1616

17-
public BeforeTransactionCompletionProcessQueue(SharedSessionContractImplementor session) {
17+
BeforeTransactionCompletionProcessQueue(SharedSessionContractImplementor session) {
1818
super( session );
1919
}
2020

21-
public void beforeTransactionCompletion() {
21+
void beforeTransactionCompletion() {
2222
BeforeCompletionCallback process;
2323
while ( (process = processes.poll()) != null ) {
2424
try {

hibernate-core/src/main/java/org/hibernate/engine/internal/EntityEntryContext.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
*
4444
* @author Steve Ebersole
4545
*/
46-
public class EntityEntryContext {
46+
class EntityEntryContext {
4747

4848
private final transient PersistenceContext persistenceContext;
4949

@@ -63,7 +63,7 @@ public class EntityEntryContext {
6363
/**
6464
* Constructs a EntityEntryContext
6565
*/
66-
public EntityEntryContext(PersistenceContext persistenceContext) {
66+
EntityEntryContext(PersistenceContext persistenceContext) {
6767
this.persistenceContext = persistenceContext;
6868
}
6969

@@ -73,7 +73,7 @@ public EntityEntryContext(PersistenceContext persistenceContext) {
7373
* @param entity The entity
7474
* @param entityEntry The entry
7575
*/
76-
public void addEntityEntry(Object entity, EntityEntry entityEntry) {
76+
void addEntityEntry(Object entity, EntityEntry entityEntry) {
7777
// IMPORTANT!!!!!
7878
// add is called more than once of some entities. In such cases the first
7979
// call is simply setting up a "marker" to avoid infinite looping from reentrancy
@@ -233,7 +233,7 @@ private void checkNotAssociatedWithOtherPersistenceContextIfMutable(ManagedEntit
233233
*
234234
* @return {@code true} if it is associated with this context
235235
*/
236-
public boolean hasEntityEntry(Object entity) {
236+
boolean hasEntityEntry(Object entity) {
237237
return getEntityEntry( entity ) != null;
238238
}
239239

@@ -244,7 +244,7 @@ public boolean hasEntityEntry(Object entity) {
244244
*
245245
* @return The associated {@link EntityEntry}
246246
*/
247-
public EntityEntry getEntityEntry(Object entity) {
247+
EntityEntry getEntityEntry(Object entity) {
248248
// locate a ManagedEntity for the entity, but only if it is associated with the same PersistenceContext.
249249
final var managedEntity = getAssociatedManagedEntity( entity );
250250
// and get/return the EntityEntry from the ManagedEntry
@@ -260,7 +260,7 @@ public EntityEntry getEntityEntry(Object entity) {
260260
*
261261
* @return The removed {@link EntityEntry}
262262
*/
263-
public EntityEntry removeEntityEntry(Object entity) {
263+
EntityEntry removeEntityEntry(Object entity) {
264264
// locate a ManagedEntity for the entity, but only if it is associated with the same PersistenceContext.
265265
// no need to check if the entity is a ManagedEntity that is associated with a different PersistenceContext
266266
final var managedEntity = getAssociatedManagedEntity( entity );
@@ -335,7 +335,7 @@ else if ( !isManagedEntity( entity ) ) {
335335
*
336336
* @return The safe array
337337
*/
338-
public Map.Entry<Object, EntityEntry>[] reentrantSafeEntityEntries() {
338+
Map.Entry<Object, EntityEntry>[] reentrantSafeEntityEntries() {
339339
if ( dirty ) {
340340
reentrantSafeEntries = new EntityEntryCrossRefImpl[count];
341341
int i = 0;
@@ -758,7 +758,7 @@ private static boolean canClearEntityEntryReference(EntityEntry entityEntry) {
758758
/**
759759
* Used in building the {@link #reentrantSafeEntityEntries()} entries
760760
*/
761-
public interface EntityEntryCrossRef extends Map.Entry<Object,EntityEntry> {
761+
private interface EntityEntryCrossRef extends Map.Entry<Object,EntityEntry> {
762762
/**
763763
* The entity
764764
*

hibernate-core/src/main/java/org/hibernate/engine/internal/EntityEntryExtraStateHolder.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@
1111
*
1212
* @author Emmanuel Bernard
1313
*/
14-
public class EntityEntryExtraStateHolder implements EntityEntryExtraState {
14+
class EntityEntryExtraStateHolder implements EntityEntryExtraState {
1515
private EntityEntryExtraState next;
1616
private Object[] deletedState;
1717

18-
public Object[] getDeletedState() {
18+
Object[] getDeletedState() {
1919
return deletedState;
2020
}
2121

22-
public void setDeletedState(Object[] deletedState) {
22+
void setDeletedState(Object[] deletedState) {
2323
this.deletedState = deletedState;
2424
}
2525

hibernate-core/src/main/java/org/hibernate/engine/internal/EntityEntryImpl.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -508,6 +508,8 @@ public void serialize(ObjectOutputStream oos) throws IOException {
508508
/**
509509
* Custom deserialization routine used during deserialization
510510
* of a {@link PersistenceContext} for increased performance.
511+
* <p>
512+
* This method is called reflectively by {@link EntityEntryContext}.
511513
*
512514
* @param ois The stream from which to read the entry
513515
* @param persistenceContext The context being deserialized

hibernate-core/src/main/java/org/hibernate/engine/internal/NaturalIdResolutionsImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
import static org.hibernate.engine.internal.CacheHelper.fromSharedCache;
3232
import static org.hibernate.engine.internal.NaturalIdLogging.NATURAL_ID_LOGGER;
3333

34-
public class NaturalIdResolutionsImpl implements NaturalIdResolutions, Serializable {
34+
class NaturalIdResolutionsImpl implements NaturalIdResolutions, Serializable {
3535

3636
private final StatefulPersistenceContext persistenceContext;
3737
private final ConcurrentHashMap<EntityMappingType, EntityResolutions> resolutionsByEntity = new ConcurrentHashMap<>();
@@ -50,7 +50,7 @@ public class NaturalIdResolutionsImpl implements NaturalIdResolutions, Serializa
5050
*
5151
* @return The session
5252
*/
53-
protected SharedSessionContractImplementor session() {
53+
private SharedSessionContractImplementor session() {
5454
return persistenceContext.getSession();
5555
}
5656

hibernate-core/src/main/java/org/hibernate/engine/internal/SessionEventListenerManagerImpl.java

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,15 @@
55
package org.hibernate.engine.internal;
66

77
import java.io.Serializable;
8-
import java.util.Arrays;
98
import java.util.List;
10-
import java.util.Objects;
119

1210
import org.hibernate.SessionEventListener;
1311
import org.hibernate.engine.spi.SessionEventListenerManager;
1412

13+
import static java.lang.System.arraycopy;
14+
import static java.util.Arrays.copyOf;
15+
import static java.util.Objects.requireNonNull;
16+
1517
/**
1618
* @author Steve Ebersole
1719
*/
@@ -21,28 +23,28 @@ public class SessionEventListenerManagerImpl implements SessionEventListenerMana
2123

2224
public SessionEventListenerManagerImpl(SessionEventListener... initialListener) {
2325
//no need for defensive copies until the array is mutated:
24-
this.listeners = initialListener;
26+
listeners = initialListener;
2527
}
2628

2729
public SessionEventListenerManagerImpl(List<SessionEventListener> initialListener) {
2830
//no need for defensive copies until the array is mutated:
29-
this.listeners = initialListener.toArray( new SessionEventListener[0] );
31+
listeners = initialListener.toArray( new SessionEventListener[0] );
3032
}
3133

3234
@Override
3335
public void addListener(final SessionEventListener... additionalListeners) {
34-
Objects.requireNonNull( additionalListeners );
35-
final var existing = this.listeners;
36+
requireNonNull( additionalListeners );
37+
final var existing = listeners;
3638
if ( existing == null ) {
3739
//Make a defensive copy as this array can be tracked back to API (user code)
38-
this.listeners = Arrays.copyOf( additionalListeners, additionalListeners.length );
40+
listeners = copyOf( additionalListeners, additionalListeners.length );
3941
}
4042
else {
4143
// Resize our existing array and add the new listeners
4244
final var newList = new SessionEventListener[ existing.length + additionalListeners.length ];
43-
System.arraycopy( existing, 0, newList, 0, existing.length );
44-
System.arraycopy( additionalListeners, 0, newList, existing.length, additionalListeners.length );
45-
this.listeners = newList;
45+
arraycopy( existing, 0, newList, 0, existing.length );
46+
arraycopy( additionalListeners, 0, newList, existing.length, additionalListeners.length );
47+
listeners = newList;
4648
}
4749
}
4850

hibernate-core/src/main/java/org/hibernate/engine/internal/TwoPhaseLoad.java

Lines changed: 0 additions & 65 deletions
This file was deleted.

hibernate-core/src/main/java/org/hibernate/loader/internal/CacheLoadHelper.java

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import org.hibernate.cache.spi.entry.ReferenceCacheEntryImpl;
1414
import org.hibernate.cache.spi.entry.StandardCacheEntryImpl;
1515
import org.hibernate.collection.spi.PersistentCollection;
16-
import org.hibernate.engine.internal.TwoPhaseLoad;
1716
import org.hibernate.engine.spi.EntityEntry;
1817
import org.hibernate.engine.spi.EntityKey;
1918
import org.hibernate.engine.spi.SharedSessionContractImplementor;
@@ -228,7 +227,7 @@ private static void makeEntityCircularReferenceSafe(
228227
entityHolder.setEntityEntry( entityEntry );
229228
}
230229
else {
231-
TwoPhaseLoad.addUninitializedCachedEntity(
230+
addUninitializedCachedEntity(
232231
entityKey,
233232
entity,
234233
referenceCacheEntry.getSubclassPersister(),
@@ -415,6 +414,46 @@ private static Object getFromSharedCache(
415414
return cachedEntry;
416415
}
417416

417+
/**
418+
*
419+
* @param key The entity key
420+
* @param object The entity instance
421+
* @param persister The entity persister
422+
* @param lockMode The lock mode
423+
* @param version The version
424+
* @param session The Session
425+
*/
426+
static void addUninitializedCachedEntity(
427+
final EntityKey key,
428+
final Object object,
429+
final EntityPersister persister,
430+
final LockMode lockMode,
431+
final Object version,
432+
final SharedSessionContractImplementor session) {
433+
final var persistenceContext = session.getPersistenceContextInternal();
434+
final var entityHolder = persistenceContext.addEntityHolder( key, object );
435+
final var entityEntry = persistenceContext.addEntry(
436+
object,
437+
Status.LOADING,
438+
null,
439+
null,
440+
key.getIdentifier(),
441+
version,
442+
lockMode,
443+
true,
444+
persister,
445+
false
446+
);
447+
entityHolder.setEntityEntry( entityEntry );
448+
final Object proxy = entityHolder.getProxy();
449+
if ( proxy != null ) {
450+
// there is already a proxy for this impl
451+
final var lazyInitializer = extractLazyInitializer( proxy );
452+
assert lazyInitializer != null;
453+
lazyInitializer.setImplementation( object );
454+
}
455+
}
456+
418457
public record PersistenceContextEntry(Object entity, EntityStatus status) {
419458
public enum EntityStatus {
420459
MANAGED,

0 commit comments

Comments
 (0)