@@ -339,59 +339,55 @@ protected CompletionStage<Void> deleteEntity(
339339 persistenceContext .setEntryStatus ( entityEntry , Status .DELETED );
340340 final EntityKey key = session .generateEntityKey ( entityEntry .getId (), persister );
341341
342- CompletionStage <Void > beforeDelete = cascadeBeforeDelete ( session , persister , entity , entityEntry , transientEntities );
343-
344- CompletionStage <Void > nullifyAndAction = new ForeignKeys .Nullifier (
345- entity ,
346- true ,
347- false ,
348- session ,
349- persister
350- ).nullifyTransientReferences ( entityEntry .getDeletedState () )
351- .thenAccept ( v -> {
352- new Nullability ( session ).checkNullability (
353- entityEntry .getDeletedState (),
354- persister ,
355- Nullability .NullabilityCheckType .DELETE
356- );
357- persistenceContext .registerNullifiableEntityKey ( key );
358-
359- ReactiveActionQueue actionQueue = actionQueue ( session );
360-
361- if ( isOrphanRemovalBeforeUpdates ) {
362- // TODO: The removeOrphan concept is a temporary "hack" for HHH-6484. This should be removed once action/task
363- // ordering is improved.
364- actionQueue .addAction (
365- new ReactiveOrphanRemovalAction (
366- entityEntry .getId (),
367- deletedState ,
368- version ,
369- entity ,
370- persister ,
371- isCascadeDeleteEnabled ,
372- session
373- )
374- );
375- }
376- else {
377- // Ensures that containing deletions happen before sub-deletions
378- actionQueue .addAction (
379- new ReactiveEntityDeleteAction (
380- entityEntry .getId (),
381- deletedState ,
382- version ,
383- entity ,
384- persister ,
385- isCascadeDeleteEnabled ,
386- session
387- )
388- );
389- }
390- } );
391-
392- CompletionStage <Void > afterDelete = cascadeAfterDelete ( session , persister , entity , transientEntities );
393-
394- return beforeDelete .thenCompose ( v -> nullifyAndAction ).thenCompose ( v -> afterDelete );
342+ return cascadeBeforeDelete ( session , persister , entity , entityEntry , transientEntities )
343+ .thenCompose ( v -> new ForeignKeys .Nullifier (
344+ entity ,
345+ true ,
346+ false ,
347+ session ,
348+ persister
349+ ).nullifyTransientReferences ( entityEntry .getDeletedState () )
350+ .thenAccept ( vv -> {
351+ new Nullability ( session ).checkNullability (
352+ entityEntry .getDeletedState (),
353+ persister ,
354+ Nullability .NullabilityCheckType .DELETE
355+ );
356+ persistenceContext .registerNullifiableEntityKey ( key );
357+
358+ ReactiveActionQueue actionQueue = actionQueue ( session );
359+
360+ if ( isOrphanRemovalBeforeUpdates ) {
361+ // TODO: The removeOrphan concept is a temporary "hack" for HHH-6484. This should be removed once action/task
362+ // ordering is improved.
363+ actionQueue .addAction (
364+ new ReactiveOrphanRemovalAction (
365+ entityEntry .getId (),
366+ deletedState ,
367+ version ,
368+ entity ,
369+ persister ,
370+ isCascadeDeleteEnabled ,
371+ session
372+ )
373+ );
374+ }
375+ else {
376+ // Ensures that containing deletions happen before sub-deletions
377+ actionQueue .addAction (
378+ new ReactiveEntityDeleteAction (
379+ entityEntry .getId (),
380+ deletedState ,
381+ version ,
382+ entity ,
383+ persister ,
384+ isCascadeDeleteEnabled ,
385+ session
386+ )
387+ );
388+ }
389+ } ) )
390+ .thenCompose ( v -> cascadeAfterDelete ( session , persister , entity , transientEntities ) );
395391 }
396392
397393 private ReactiveActionQueue actionQueue (EventSource session ) {
0 commit comments