Fix a bug where a cached copy of a txn might not have a reference to the ledger

it was applied in, causing commands like 'tx' not to return metadata.
This commit is contained in:
JoelKatz
2013-02-27 18:23:24 -08:00
parent ab89fbdcf6
commit 312e476898
3 changed files with 16 additions and 2 deletions

View File

@@ -451,9 +451,11 @@ void Ledger::saveAcceptedLedger(bool fromConsensus, LoadEvent::pointer event)
std::string escMeta(sqlEscape(rawMeta.peekData()));
SerializerIterator txnIt(rawTxn);
SerializedTransaction txn(txnIt);
assert(txn.getTransactionID() == item->getTag());
TransactionMetaSet meta(item->getTag(), mLedgerSeq, rawMeta.peekData());
theApp->getMasterTransaction().inLedger(item->getTag(), mLedgerSeq);
// Make sure transaction is in AccountTransactions.
if (!SQL_EXISTS(db, boost::str(AcctTransExists % item->getTag().GetHex())))