public void handoverCompletions(Exchange target) {
   if (onCompletions != null) {
     for (Synchronization onCompletion : onCompletions) {
       target.addOnCompletion(onCompletion);
     }
     // cleanup the temporary on completion list as they have been handed over
     onCompletions.clear();
     onCompletions = null;
   } else if (unitOfWork != null) {
     // let unit of work handover
     unitOfWork.handoverSynchronization(target);
   }
 }