Skip to content

Commit 4ab3060

Browse files
committed
minor cleanups in event.service
1 parent 7feea8b commit 4ab3060

File tree

5 files changed

+37
-49
lines changed

5 files changed

+37
-49
lines changed

hibernate-core/src/main/java/org/hibernate/event/service/internal/EventListenerGroupImpl.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828

2929
import org.jboss.logging.Logger;
3030

31+
import static java.lang.System.arraycopy;
3132
import static java.util.Arrays.asList;
3233
import static java.util.Collections.emptyList;
3334
import static java.util.Collections.singleton;
@@ -239,7 +240,7 @@ private void internalAppend(T listener) {
239240
listenersWrite = createListenerArrayForWrite( size + 1 );
240241

241242
// first copy the existing listeners
242-
System.arraycopy( listenersRead, 0, listenersWrite, 0, size );
243+
arraycopy( listenersRead, 0, listenersWrite, 0, size );
243244

244245
// and then put the new one after them
245246
listenersWrite[size] = listener;
@@ -279,7 +280,7 @@ private void internalPrepend(T listener) {
279280
listenersWrite[0] = listener;
280281

281282
// and copy the rest after it
282-
System.arraycopy( listenersRead, 0, listenersWrite, 1, size );
283+
arraycopy( listenersRead, 0, listenersWrite, 1, size );
283284
}
284285
setListeners( listenersWrite );
285286
}
@@ -293,7 +294,7 @@ private void handleListenerAddition(T listener, Consumer<T> additionHandler) {
293294
int size = listenersRead.length;
294295

295296
final T[] listenersWrite = createListenerArrayForWrite( size );
296-
System.arraycopy( listenersRead, 0, listenersWrite, 0, size );
297+
arraycopy( listenersRead, 0, listenersWrite, 0, size );
297298

298299
final boolean traceEnabled = log.isTraceEnabled();
299300

hibernate-core/src/main/java/org/hibernate/event/service/internal/EventListenerRegistryImpl.java

Lines changed: 26 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
import java.lang.reflect.Array;
88
import java.util.ArrayList;
9-
import java.util.Comparator;
109
import java.util.HashMap;
1110
import java.util.Map;
1211
import java.util.TreeMap;
@@ -41,6 +40,7 @@
4140
import org.hibernate.internal.build.AllowReflection;
4241
import org.hibernate.jpa.event.spi.CallbackRegistry;
4342

43+
import static java.util.Comparator.comparing;
4444
import static org.hibernate.event.spi.EventType.AUTO_FLUSH;
4545
import static org.hibernate.event.spi.EventType.CLEAR;
4646
import static org.hibernate.event.spi.EventType.DELETE;
@@ -108,8 +108,7 @@ public <T> EventListenerGroup<T> getEventListenerGroup(EventType<T> eventType) {
108108

109109
@Override
110110
public void addDuplicationStrategy(DuplicationStrategy strategy) {
111-
//noinspection rawtypes
112-
for ( EventListenerGroup group : eventListeners ) {
111+
for ( var group : eventListeners ) {
113112
if ( group != null ) {
114113
group.addDuplicationStrategy( strategy );
115114
}
@@ -126,7 +125,7 @@ public final <T> void setListeners(EventType<T> type, Class<? extends T>... list
126125
@AllowReflection // Possible array types are registered in org.hibernate.graalvm.internal.StaticClassLists.typesNeedingArrayCopy
127126
private <T> T[] resolveListenerInstances(EventType<T> type, Class<? extends T>... listenerClasses) {
128127
@SuppressWarnings("unchecked")
129-
T[] listeners = (T[]) Array.newInstance( type.baseListenerInterface(), listenerClasses.length );
128+
final T[] listeners = (T[]) Array.newInstance( type.baseListenerInterface(), listenerClasses.length );
130129
for ( int i = 0; i < listenerClasses.length; i++ ) {
131130
listeners[i] = resolveListenerInstance( listenerClasses[i] );
132131
}
@@ -135,12 +134,15 @@ private <T> T[] resolveListenerInstances(EventType<T> type, Class<? extends T>..
135134

136135
private <T> T resolveListenerInstance(Class<T> listenerClass) {
137136
@SuppressWarnings("unchecked")
138-
T listenerInstance = (T) listenerClassToInstanceMap.get( listenerClass );
137+
final T listenerInstance = (T) listenerClassToInstanceMap.get( listenerClass );
139138
if ( listenerInstance == null ) {
140-
listenerInstance = instantiateListener( listenerClass );
141-
listenerClassToInstanceMap.put( listenerClass, listenerInstance );
139+
T newListenerInstance = instantiateListener( listenerClass );
140+
listenerClassToInstanceMap.put( listenerClass, newListenerInstance );
141+
return newListenerInstance;
142+
}
143+
else {
144+
return listenerInstance;
142145
}
143-
return listenerInstance;
144146
}
145147

146148
private <T> T instantiateListener(Class<T> listenerClass) {
@@ -159,7 +161,7 @@ private <T> T instantiateListener(Class<T> listenerClass) {
159161
@Override
160162
@SafeVarargs
161163
public final <T> void setListeners(EventType<T> type, T... listeners) {
162-
final EventListenerGroup<T> registeredListeners = getEventListenerGroup( type );
164+
final var registeredListeners = getEventListenerGroup( type );
163165
registeredListeners.clear();
164166
if ( listeners != null ) {
165167
for ( T listener : listeners ) {
@@ -200,9 +202,8 @@ public static class Builder {
200202
private final CallbackRegistry callbackRegistry;
201203
private final boolean jpaBootstrap;
202204

203-
private final Map<EventType<?>,EventListenerGroup<?>> listenerGroupMap = new TreeMap<>(
204-
Comparator.comparing( EventType::ordinal )
205-
);
205+
private final Map<EventType<?>,EventListenerGroup<?>> listenerGroupMap =
206+
new TreeMap<>( comparing( EventType::ordinal ) );
206207

207208
public Builder(CallbackRegistry callbackRegistry, boolean jpaBootstrap) {
208209
this.callbackRegistry = callbackRegistry;
@@ -322,29 +323,22 @@ public <T> void prepareListeners(EventType<T> type, T defaultListener) {
322323
prepareListeners(
323324
type,
324325
defaultListener,
325-
t -> {
326-
if ( type == EventType.POST_COMMIT_DELETE
327-
|| type == EventType.POST_COMMIT_INSERT
328-
|| type == EventType.POST_COMMIT_UPDATE ) {
329-
return new PostCommitEventListenerGroupImpl<>( type, callbackRegistry, jpaBootstrap );
330-
}
331-
else {
332-
return new EventListenerGroupImpl<>( type, callbackRegistry, jpaBootstrap );
333-
}
334-
}
326+
t -> type == EventType.POST_COMMIT_DELETE
327+
|| type == EventType.POST_COMMIT_INSERT
328+
|| type == EventType.POST_COMMIT_UPDATE
329+
? new PostCommitEventListenerGroupImpl<>( type, callbackRegistry, jpaBootstrap )
330+
: new EventListenerGroupImpl<>( type, callbackRegistry, jpaBootstrap )
335331
);
336332
}
337333

338-
public <T> void prepareListeners(
334+
<T> void prepareListeners(
339335
EventType<T> type,
340336
T defaultListener,
341337
Function<EventType<T>,EventListenerGroupImpl<T>> groupCreator) {
342-
final EventListenerGroupImpl<T> listenerGroup = groupCreator.apply( type );
343-
338+
final var listenerGroup = groupCreator.apply( type );
344339
if ( defaultListener != null ) {
345340
listenerGroup.appendListener( defaultListener );
346341
}
347-
348342
listenerGroupMap.put( type, listenerGroup );
349343
}
350344

@@ -355,24 +349,19 @@ public <T> EventListenerGroup<T> getListenerGroup(EventType<T> eventType) {
355349

356350
public EventListenerRegistry buildRegistry(Map<String, EventType<?>> registeredEventTypes) {
357351
// validate contiguity of the event-type ordinals and build the EventListenerGroups array
358-
359-
final ArrayList<EventType<?>> eventTypeList = new ArrayList<>( registeredEventTypes.values() );
360-
eventTypeList.sort( Comparator.comparing( EventType::ordinal ) );
361-
362-
final EventListenerGroup<?>[] eventListeners = new EventListenerGroup[ eventTypeList.size() ];
363-
352+
final ArrayList<EventType<?>> eventTypeList =
353+
new ArrayList<>( registeredEventTypes.values() );
354+
eventTypeList.sort( comparing( EventType::ordinal ) );
355+
final EventListenerGroup<?>[] eventListeners =
356+
new EventListenerGroup[ eventTypeList.size() ];
364357
int previous = -1;
365358
for ( int i = 0; i < eventTypeList.size(); i++ ) {
366-
final EventType<?> eventType = eventTypeList.get( i );
367-
359+
final var eventType = eventTypeList.get( i );
368360
assert i == eventType.ordinal();
369361
assert i - 1 == previous;
370-
371362
eventListeners[i] = listenerGroupMap.get( eventType );
372-
373363
previous = i;
374364
}
375-
376365
return new EventListenerRegistryImpl( eventListeners );
377366
}
378367
}

hibernate-core/src/main/java/org/hibernate/event/service/internal/PostCommitEventListenerGroupImpl.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
class PostCommitEventListenerGroupImpl<T> extends EventListenerGroupImpl<T> {
2525
private static final CoreMessageLogger log = CoreLogging.messageLogger( PostCommitEventListenerGroupImpl.class );
2626

27-
private final Class extendedListenerContract;
27+
private final Class<?> extendedListenerContract;
2828

2929
public PostCommitEventListenerGroupImpl(
3030
EventType<T> eventType,
@@ -33,13 +33,13 @@ public PostCommitEventListenerGroupImpl(
3333
super( eventType, callbackRegistry, isJpaBootstrap );
3434

3535
if ( eventType == EventType.POST_COMMIT_DELETE ) {
36-
this.extendedListenerContract = PostCommitDeleteEventListener.class;
36+
extendedListenerContract = PostCommitDeleteEventListener.class;
3737
}
3838
else if ( eventType == EventType.POST_COMMIT_INSERT ) {
39-
this.extendedListenerContract = PostCommitInsertEventListener.class;
39+
extendedListenerContract = PostCommitInsertEventListener.class;
4040
}
4141
else if ( eventType == EventType.POST_COMMIT_UPDATE ) {
42-
this.extendedListenerContract = PostCommitUpdateEventListener.class;
42+
extendedListenerContract = PostCommitUpdateEventListener.class;
4343
}
4444
else {
4545
throw new IllegalStateException( "Unexpected usage of PostCommitEventListenerGroupImpl" );

hibernate-core/src/main/java/org/hibernate/event/service/spi/EventListenerGroups.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,7 @@ private static <T> EventListenerGroup<T> listeners(EventListenerRegistry listene
9696
public EventListenerGroups(ServiceRegistry serviceRegistry) {
9797
Objects.requireNonNull( serviceRegistry );
9898

99-
final EventListenerRegistry eventListenerRegistry =
100-
serviceRegistry.requireService( EventListenerRegistry.class );
99+
final var eventListenerRegistry = serviceRegistry.requireService( EventListenerRegistry.class );
101100

102101
// Pre-compute all iterators on Event listeners:
103102

hibernate-core/src/main/java/org/hibernate/internal/StatelessSessionImpl.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import org.hibernate.action.spi.AfterTransactionCompletionProcess;
2323
import org.hibernate.bytecode.enhance.spi.interceptor.EnhancementAsProxyLazinessInterceptor;
2424
import org.hibernate.cache.CacheException;
25-
import org.hibernate.cache.spi.access.SoftLock;
2625
import org.hibernate.collection.spi.CollectionSemantics;
2726
import org.hibernate.collection.spi.PersistentCollection;
2827
import org.hibernate.engine.spi.EntityKey;
@@ -1367,7 +1366,7 @@ protected Object lockCacheItem(Object id, Object previousVersion, EntityPersiste
13671366
getFactory(),
13681367
getTenantIdentifier()
13691368
);
1370-
final SoftLock lock = cache.lockItem( this, cacheKey, previousVersion );
1369+
final var lock = cache.lockItem( this, cacheKey, previousVersion );
13711370
afterCompletions.add( (success, session) -> cache.unlockItem( session, cacheKey, lock ) );
13721371
return cacheKey;
13731372
}
@@ -1391,7 +1390,7 @@ protected Object lockCacheItem(Object key, CollectionPersister persister) {
13911390
getFactory(),
13921391
getTenantIdentifier()
13931392
);
1394-
final SoftLock lock = cache.lockItem( this, cacheKey, null );
1393+
final var lock = cache.lockItem( this, cacheKey, null );
13951394
afterCompletions.add( (success, session) -> cache.unlockItem( this, cacheKey, lock ) );
13961395
return cacheKey;
13971396
}

0 commit comments

Comments
 (0)