4242import static org .hibernate .pretty .MessageHelper .collectionInfoString ;
4343import static org .hibernate .reactive .util .impl .CompletionStages .completedFuture ;
4444import static org .hibernate .reactive .util .impl .CompletionStages .loop ;
45- import static org .hibernate .reactive .util .impl .CompletionStages .nullFuture ;
4645import static org .hibernate .reactive .util .impl .CompletionStages .voidFuture ;
4746
4847/**
@@ -81,36 +80,35 @@ public static CompletionStage<Object> replace(
8180 Object owner ,
8281 Map <Object , Object > copyCache ) throws HibernateException {
8382 if ( original == null ) {
84- return replaceNullOriginal ( target , session );
83+ return completedFuture ( replaceNullOriginal ( target , session ) );
8584 }
8685 else if ( !Hibernate .isInitialized ( original ) ) {
87- return replaceUninitializedOriginal ( type , original , target , session , copyCache );
86+ return completedFuture ( replaceUninitializedOriginal ( type , original , target , session , copyCache ) );
8887 }
8988 else {
9089 return replaceOriginal ( type , original , target , session , owner , copyCache );
9190 }
9291 }
9392
9493 // todo: make org.hibernate.type.CollectionType#replaceNullOriginal public ?
95-
9694 /**
9795 * @see CollectionType#replaceNullOriginal(Object, SharedSessionContractImplementor)
9896 */
99- private static CompletionStage < Object > replaceNullOriginal (
97+ private static Object replaceNullOriginal (
10098 Object target ,
10199 SessionImplementor session ) {
102100 if ( target == null ) {
103- return nullFuture () ;
101+ return null ;
104102 }
105103 else if ( target instanceof Collection <?> ) {
106104 Collection <?> collection = (Collection <?>) target ;
107105 collection .clear ();
108- return completedFuture ( collection ) ;
106+ return collection ;
109107 }
110108 else if ( target instanceof Map <?, ?> ) {
111109 Map <?, ?> map = (Map <?, ?>) target ;
112110 map .clear ();
113- return completedFuture ( map ) ;
111+ return map ;
114112 }
115113 else {
116114 final PersistenceContext persistenceContext = session .getPersistenceContext ();
@@ -127,18 +125,15 @@ else if ( target instanceof Map<?, ?> ) {
127125 arrayHolder .endRead ();
128126 arrayHolder .dirty ();
129127 persistenceContext .addCollectionHolder ( collectionHolder );
130- return completedFuture ( arrayHolder .getArray () );
128+ return arrayHolder .getArray ();
131129 }
132130 }
133131 }
134- return nullFuture () ;
132+ return null ;
135133 }
136134
137135 // todo: make org.hibernate.type.CollectionType#replaceUninitializedOriginal public
138- /**
139- * @see CollectionType#replaceNullOriginal(Object, SharedSessionContractImplementor)
140- */
141- private static CompletionStage <Object > replaceUninitializedOriginal (
136+ private static Object replaceUninitializedOriginal (
142137 CollectionType type ,
143138 Object original ,
144139 Object target ,
@@ -164,7 +159,7 @@ private static CompletionStage<Object> replaceUninitializedOriginal(
164159 collectionInfoString ( type .getRole (), persistentCollection .getKey () ) );
165160 }
166161 }
167- return completedFuture ( target ) ;
162+ return target ;
168163 }
169164
170165 /**
@@ -196,11 +191,11 @@ private static CompletionStage<Object> replaceOriginal(
196191 //TODO: this is a little inefficient, don't need to do a whole
197192 // deep replaceElements() call
198193 return replaceElements ( type , result , target , owner , copyCache , session )
199- .thenCompose ( unused -> {
194+ .thenApply ( unused -> {
200195 if ( wasClean ) {
201196 ( (PersistentCollection <?>) target ).clearDirty ();
202197 }
203- return completedFuture ( target ) ;
198+ return target ;
204199 } );
205200 }
206201 else {
@@ -296,26 +291,22 @@ private static CompletionStage<Object> replaceMapTypeElements(
296291 Object owner ,
297292 Map <Object , Object > copyCache ,
298293 SessionImplementor session ) {
299- final CollectionPersister persister =
300- session .getFactory ().getRuntimeMetamodels ().getMappingMetamodel ()
301- .getCollectionDescriptor ( type .getRole () );
302-
294+ final CollectionPersister persister = session .getFactory ().getRuntimeMetamodels ()
295+ .getMappingMetamodel ().getCollectionDescriptor ( type .getRole () );
303296 final Map <Object , Object > result = target ;
304297 result .clear ();
305298
306299 return loop (
307300 original .entrySet (), entry -> {
308301 final Map .Entry <Object , Object > me = entry ;
309302 return getReplace ( persister .getIndexType (), me .getKey (), owner , session , copyCache )
310- .thenCompose ( key ->
311- getReplace (
312- persister .getElementType (),
313- me .getValue (),
314- owner ,
315- session ,
316- copyCache
317- ).thenAccept ( value ->
318- result .put ( key , value ) )
303+ .thenCompose ( key -> getReplace (
304+ persister .getElementType (),
305+ me .getValue (),
306+ owner ,
307+ session ,
308+ copyCache
309+ ).thenAccept ( value -> result .put ( key , value ) )
319310 );
320311 }
321312 ).thenApply ( unused -> result );
@@ -340,14 +331,11 @@ private static CompletionStage<Object> replaceArrayTypeElements(
340331
341332 final Type elemType = type .getElementType ( session .getFactory () );
342333 return loop (
343- 0 , length , i -> {
344- return getReplace ( elemType , Array .get ( original , i ), owner , session , copyCache )
345- .thenApply ( o -> {
346- Array .set ( result , i , o );
347- return result ;
348- }
349- );
350- }
334+ 0 , length , i -> getReplace ( elemType , Array .get ( original , i ), owner , session , copyCache )
335+ .thenApply ( o -> {
336+ Array .set ( result , i , o );
337+ return result ;
338+ } )
351339 ).thenApply ( unused -> result );
352340 }
353341
@@ -389,8 +377,7 @@ private static CompletionStage<Void> preserveSnapshot(
389377 final CollectionEntry ce = session .getPersistenceContextInternal ().getCollectionEntry ( result );
390378 if ( ce != null ) {
391379 return createSnapshot ( original , result , elemType , owner , copyCache , session )
392- .thenAccept ( serializable ->
393- ce .resetStoredSnapshot ( result , serializable ) );
380+ .thenAccept ( serializable -> ce .resetStoredSnapshot ( result , serializable ) );
394381 }
395382 return voidFuture ();
396383 }
@@ -434,14 +421,8 @@ private static CompletionStage<Serializable> createArraySnapshot(
434421 Map <Object , Object > copyCache ,
435422 SessionImplementor session ) {
436423 return loop (
437- 0 , array .length ,
438- i ->
439- getReplace ( elemType , array [i ], owner , session , copyCache )
440- .thenCompose ( o -> {
441- array [i ] = o ;
442- return voidFuture ();
443- }
444- )
424+ 0 , array .length , i -> getReplace ( elemType , array [i ], owner , session , copyCache )
425+ .thenAccept ( o -> array [i ] = o )
445426 ).thenApply ( unused -> array );
446427 }
447428
@@ -468,10 +449,9 @@ private static CompletionStage<Serializable> createMapSnapshot(
468449 return loop (
469450 map .entrySet (), entry ->
470451 getReplace ( elemType , entry .getValue (), resultSnapshot , owner , session , copyCache )
471- .thenCompose ( newValue -> {
452+ .thenAccept ( newValue -> {
472453 final Object key = entry .getKey ();
473454 targetMap .put ( key == entry .getValue () ? newValue : key , newValue );
474- return voidFuture ();
475455 } )
476456 ).thenApply ( v -> (Serializable ) targetMap );
477457 }
@@ -487,12 +467,8 @@ private static CompletionStage<Serializable> createListSnapshot(
487467 SessionImplementor session ) {
488468 final ArrayList <Object > targetList = new ArrayList <>( list .size () );
489469 return loop (
490- list , obj ->
491- getReplace ( elemType , obj , owner , session , copyCache )
492- .thenCompose ( o -> {
493- targetList .add ( o );
494- return voidFuture ();
495- } )
470+ list , obj -> getReplace ( elemType , obj , owner , session , copyCache )
471+ .thenAccept ( targetList ::add )
496472 ).thenApply ( unused -> targetList );
497473 }
498474
@@ -507,10 +483,8 @@ private static Object instantiateResultIfNecessary(CollectionType type, Object o
507483 return target == null
508484 || target == original
509485 || target == UNFETCHED_PROPERTY
510- || target instanceof PersistentCollection <?> && ( (PersistentCollection <?>) target ).isWrapper ( original ) ?
511- type .instantiate ( -1 ) :
512- target ;
486+ || target instanceof PersistentCollection <?> && ( (PersistentCollection <?>) target ).isWrapper ( original )
487+ ? type .instantiate ( -1 )
488+ : target ;
513489 }
514-
515-
516490}
0 commit comments