diff --git a/src/cpp/ripple/HashedObject.cpp b/src/cpp/ripple/HashedObject.cpp index 288639f63..49a451050 100644 --- a/src/cpp/ripple/HashedObject.cpp +++ b/src/cpp/ripple/HashedObject.cpp @@ -33,7 +33,6 @@ bool HashedObjectStore::store(HashedObjectType type, uint32 index, } assert(hash == Serializer::getSHA512Half(data)); - mNegativeCache.del(hash); HashedObject::pointer object = boost::make_shared(type, index, data, hash); if (!mCache.canonicalize(hash, object)) { @@ -48,6 +47,7 @@ bool HashedObjectStore::store(HashedObjectType type, uint32 index, } // else // cLog(lsTRACE) << "HOS: already had " << hash; + mNegativeCache.del(hash); return true; } @@ -152,6 +152,7 @@ HashedObject::pointer HashedObjectStore::retrieve(const uint256& hash) db->getStr("ObjType", type); if (type.size() == 0) { + assert(false); mNegativeCache.add(hash); return HashedObject::pointer(); } @@ -173,6 +174,7 @@ HashedObject::pointer HashedObjectStore::retrieve(const uint256& hash) case 'A': htype = hotACCOUNT_NODE; break; case 'N': htype = hotTRANSACTION_NODE; break; default: + assert(false); cLog(lsERROR) << "Invalid hashed object"; mNegativeCache.add(hash); return HashedObject::pointer(); diff --git a/src/cpp/ripple/LedgerAcquire.cpp b/src/cpp/ripple/LedgerAcquire.cpp index f18675a37..f046b9ef6 100644 --- a/src/cpp/ripple/LedgerAcquire.cpp +++ b/src/cpp/ripple/LedgerAcquire.cpp @@ -193,13 +193,13 @@ void LedgerAcquire::done() mOnComplete.clear(); mLock.unlock(); - if (isComplete() && mLedger) + if (isComplete() && !isFailed() && mLedger) { if (mAccept) mLedger->setAccepted(); theApp->getLedgerMaster().storeLedger(mLedger); } - else if (isFailed()) + else theApp->getMasterLedgerAcquire().logFailure(mHash); for (unsigned int i = 0; i < triggers.size(); ++i)