@Override
 public void addWaitee(final NodeID waitee, final TransactionID txnID) {
   final TransactionRecord record = getRecord(txnID);
   Assert.assertNotNull(record);
   final boolean added = record.addWaitee(waitee);
   Assert.eval(added);
 }
 @Override
 public void addObjectsSyncedTo(final NodeID to, final TransactionID txnID) {
   TransactionRecord tr = null;
   while (tr == null) {
     synchronized (this.waitees) {
       tr = this.waitees.get(txnID);
       if (tr == null) {
         tr = new TransactionRecord(to);
         createRecord(txnID, tr);
       } else if (!tr.addWaitee(to)) {
         /*  couldn't add the waitee, try again  */
         tr = null;
       }
     }
   }
 }