3535import org .hibernate .jpa .event .spi .CallbackRegistryConsumer ;
3636import org .hibernate .metamodel .mapping .NaturalIdMapping ;
3737import org .hibernate .persister .entity .EntityPersister ;
38- import org .hibernate .pretty .MessageHelper ;
3938import org .hibernate .stat .spi .StatisticsImplementor ;
4039import org .hibernate .type .Type ;
4140
5049import static org .hibernate .engine .internal .Versioning .getVersion ;
5150import static org .hibernate .engine .internal .Versioning .incrementVersion ;
5251import static org .hibernate .engine .internal .Versioning .setVersion ;
52+ import static org .hibernate .pretty .MessageHelper .infoString ;
5353
5454/**
5555 * An event that occurs for each entity instance at flush time
@@ -110,7 +110,8 @@ private void checkNaturalId(
110110
111111 private static boolean isUninitializedEnhanced (Object entity ) {
112112 if ( isPersistentAttributeInterceptable ( entity ) ) {
113- final PersistentAttributeInterceptor interceptor = asPersistentAttributeInterceptable ( entity ).$$_hibernate_getInterceptor ();
113+ final PersistentAttributeInterceptor interceptor =
114+ asPersistentAttributeInterceptable ( entity ).$$_hibernate_getInterceptor ();
114115 // the entity is an un-initialized enhancement-as-proxy reference
115116 return interceptor instanceof EnhancementAsProxyLazinessInterceptor ;
116117 }
@@ -162,7 +163,6 @@ public void onFlushEntity(FlushEntityEvent event) throws HibernateException {
162163
163164 private Object [] getValues (Object entity , EntityEntry entry , boolean mightBeDirty , SessionImplementor session ) {
164165 final Object [] loadedState = entry .getLoadedState ();
165-
166166 if ( entry .getStatus () == Status .DELETED ) {
167167 //grab its state saved at deletion
168168 return entry .getDeletedState ();
@@ -216,8 +216,7 @@ private boolean isUpdateNecessary(final FlushEntityEvent event, final boolean mi
216216 final Object entity = event .getEntity ();
217217 processIfSelfDirtinessTracker ( entity , SelfDirtinessTracker ::$$_hibernate_clearDirtyAttributes );
218218 processIfManagedEntity ( entity , DefaultFlushEntityEventListener ::useTracker );
219- event .getFactory ()
220- .getCustomEntityDirtinessStrategy ()
219+ event .getFactory ().getCustomEntityDirtinessStrategy ()
221220 .resetDirty ( entity , entry .getPersister (), event .getSession () );
222221 return false ;
223222 }
@@ -246,7 +245,7 @@ private boolean scheduleUpdate(final FlushEntityEvent event) {
246245 // increment the version number (if necessary)
247246 final Object nextVersion = getNextVersion ( event );
248247
249- int [] dirtyProperties = getDirtyProperties ( event , intercepted );
248+ final int [] dirtyProperties = getDirtyProperties ( event , intercepted );
250249
251250 // check nullability but do not doAfterTransactionCompletion command execute
252251 // we'll use scheduled updates for that.
@@ -276,7 +275,7 @@ private boolean scheduleUpdate(final FlushEntityEvent event) {
276275 }
277276
278277 private static int [] getDirtyProperties (FlushEntityEvent event , boolean intercepted ) {
279- int [] dirtyProperties = event .getDirtyProperties ();
278+ final int [] dirtyProperties = event .getDirtyProperties ();
280279 if ( event .isDirtyCheckPossible () && dirtyProperties == null ) {
281280 if ( !intercepted && !event .hasDirtyCollection () ) {
282281 throw new AssertionFailure ( "dirty, but no dirty properties" );
@@ -297,26 +296,26 @@ private static void logScheduleUpdate(EntityEntry entry, SessionFactoryImplement
297296 if ( !persister .isMutable () ) {
298297 LOG .tracev (
299298 "Updating immutable, deleted entity: {0}" ,
300- MessageHelper . infoString (persister , entry .getId (), factory )
299+ infoString (persister , entry .getId (), factory )
301300 );
302301 }
303302 else if ( !entry .isModifiableEntity () ) {
304303 LOG .tracev (
305304 "Updating non-modifiable, deleted entity: {0}" ,
306- MessageHelper . infoString (persister , entry .getId (), factory )
305+ infoString (persister , entry .getId (), factory )
307306 );
308307 }
309308 else {
310309 LOG .tracev (
311310 "Updating deleted entity: {0}" ,
312- MessageHelper . infoString (persister , entry .getId (), factory )
311+ infoString (persister , entry .getId (), factory )
313312 );
314313 }
315314 }
316315 else {
317316 LOG .tracev (
318317 "Updating entity: {0}" ,
319- MessageHelper . infoString (persister , entry .getId (), factory )
318+ infoString (persister , entry .getId (), factory )
320319 );
321320 }
322321 }
@@ -340,12 +339,12 @@ protected boolean invokeInterceptor(FlushEntityEvent event) {
340339 final EntityPersister persister = entry .getPersister ();
341340 final EventSource session = event .getSession ();
342341
343- boolean isDirty = false ;
344-
345- if ( entry . getStatus () != Status . DELETED ) {
346- if ( callbackRegistry . preUpdate ( entity ) ) {
347- isDirty = copyState ( entity , persister . getPropertyTypes (), values , event . getFactory () );
348- }
342+ final boolean isDirty ;
343+ if ( entry . getStatus () != Status . DELETED && callbackRegistry . preUpdate ( entity ) ) {
344+ isDirty = copyState ( entity , persister . getPropertyTypes (), values , event . getFactory () );
345+ }
346+ else {
347+ isDirty = false ;
349348 }
350349
351350 final boolean stateModified = session .getInterceptor ().onFlushDirty (
@@ -414,7 +413,7 @@ private static boolean isVersionIncrementRequired(FlushEntityEvent event, Entity
414413 return false ;
415414 }
416415 else {
417- int [] dirtyProperties = event .getDirtyProperties ();
416+ final int [] dirtyProperties = event .getDirtyProperties ();
418417 return dirtyProperties == null
419418 || Versioning .isVersionIncrementRequired (
420419 dirtyProperties ,
@@ -445,7 +444,7 @@ private boolean hasDirtyCollections(FlushEntityEvent event) {
445444 persister .getPropertyVersionability ()
446445 );
447446 visitor .processEntityPropertyValues ( event .getPropertyValues (), persister .getPropertyTypes () );
448- boolean hasDirtyCollections = visitor .wasDirtyCollectionFound ();
447+ final boolean hasDirtyCollections = visitor .wasDirtyCollectionFound ();
449448 event .setHasDirtyCollection ( hasDirtyCollections );
450449 return hasDirtyCollections ;
451450 }
@@ -482,7 +481,7 @@ protected void dirtyCheck(final FlushEntityEvent event) throws HibernateExceptio
482481
483482 private static int [] performDirtyCheck (FlushEntityEvent event ) {
484483 final SessionImplementor session = event .getSession ();
485- boolean dirtyCheckPossible ;
484+ final boolean dirtyCheckPossible ;
486485 int [] dirtyProperties = null ;
487486 final EventManager eventManager = session .getEventManager ();
488487 final HibernateMonitoringEvent dirtyCalculationEvent = eventManager .beginDirtyCalculationEvent ();
@@ -547,16 +546,15 @@ else if ( entry.getStatus() == Status.DELETED && !entry.isModifiableEntity() ) {
547546 * the bytecode enhancement, or a custom dirtiness strategy.
548547 */
549548 private static int [] getDirtyProperties (FlushEntityEvent event ) {
550- int [] dirtyProperties = getDirtyPropertiesFromInterceptor ( event );
549+ final int [] dirtyProperties = getDirtyPropertiesFromInterceptor ( event );
551550 if ( dirtyProperties != null ) {
552551 return dirtyProperties ;
553552 }
554553 else {
555554 final Object entity = event .getEntity ();
556- if ( isSelfDirtinessTracker ( entity ) && asManagedEntity ( entity ).$$_hibernate_useTracker () ) {
557- return getDirtyPropertiesFromSelfDirtinessTracker ( asSelfDirtinessTracker ( entity ), event );
558- }
559- return getDirtyPropertiesFromCustomEntityDirtinessStrategy ( event );
555+ return isSelfDirtinessTracker ( entity ) && asManagedEntity ( entity ).$$_hibernate_useTracker ()
556+ ? getDirtyPropertiesFromSelfDirtinessTracker ( asSelfDirtinessTracker ( entity ), event )
557+ : getDirtyPropertiesFromCustomEntityDirtinessStrategy ( event );
560558 }
561559 }
562560
@@ -685,7 +683,7 @@ private void logDirtyProperties(EntityEntry entry, int[] dirtyProperties) {
685683 }
686684 LOG .tracev (
687685 "Found dirty properties [{0}] : {1}" ,
688- MessageHelper . infoString ( persister .getEntityName (), entry .getId () ),
686+ infoString ( persister .getEntityName (), entry .getId () ),
689687 Arrays .toString ( dirtyPropertyNames )
690688 );
691689 }
0 commit comments