private function getNeededTransactions(ConpherenceThread $conpherence, $message_id)
 {
     if ($message_id) {
         $newer_transactions = $conpherence->getTransactions();
         $query = id(new ConpherenceTransactionQuery())->setViewer($this->getRequest()->getUser())->withObjectPHIDs(array($conpherence->getPHID()))->setAfterID($message_id)->needHandles(true)->setLimit(self::OLDER_FETCH_LIMIT);
         $older_transactions = $query->execute();
         $handles = array();
         foreach ($older_transactions as $transaction) {
             $handles += $transaction->getHandles();
         }
         $conpherence->attachHandles($conpherence->getHandles() + $handles);
         $transactions = array_merge($newer_transactions, $older_transactions);
         $conpherence->attachTransactions($transactions);
     } else {
         $transactions = $conpherence->getTransactions();
     }
     return $transactions;
 }