Skip to content
Snippets Groups Projects
Commit da982a22 authored by Brad Payne (Vir Linden)'s avatar Brad Payne (Vir Linden)
Browse files

SL-14570 - added getFullPath(), cleaned up logging at bit

parent 38ce446a
No related branches found
No related tags found
No related merge requests found
......@@ -2286,11 +2286,11 @@ bool LLInventoryModel::loadSkeleton(
}
}
LL_INFOS(LOG_INV) << "Attempted to add " << bad_link_count
<< " cached link items without baseobj present. "
<< good_link_count << " link items were successfully added. "
<< recovered_link_count << " links added in recovery. "
<< "The corresponding categories were invalidated." << LL_ENDL;
LL_DEBUGS(LOG_INV) << "Attempted to add " << bad_link_count
<< " cached link items without baseobj present. "
<< good_link_count << " link items were successfully added. "
<< recovered_link_count << " links added in recovery. "
<< "The corresponding categories were invalidated." << LL_ENDL;
}
}
......@@ -2316,7 +2316,10 @@ bool LLInventoryModel::loadSkeleton(
cat->setVersion(NO_VERSION);
LL_DEBUGS(LOG_INV) << "Invalidating category name: " << cat->getName() << " UUID: " << cat->getUUID() << " due to invalid descendents cache" << LL_ENDL;
}
LL_INFOS(LOG_INV) << "Invalidated " << invalid_categories.size() << " categories due to invalid descendents cache" << LL_ENDL;
if (invalid_categories.size() > 0)
{
LL_DEBUGS(LOG_INV) << "Invalidated " << invalid_categories.size() << " categories due to invalid descendents cache" << LL_ENDL;
}
// At this point, we need to set the known descendents for each
// category which successfully cached so that we do not
......@@ -3735,24 +3738,6 @@ void LLInventoryModel::dumpInventory() const
LL_INFOS() << "\n**********************\nEnd Inventory Dump" << LL_ENDL;
}
std::string get_full_path(const LLInventoryObject *cat)
{
std::vector<std::string> path_elts;
std::map<LLUUID,bool> visited;
while (cat != NULL && !visited[cat->getUUID()])
{
path_elts.push_back(cat->getName());
// avoid infinite loop in the unlikely event of a cycle
visited[cat->getUUID()] = true;
cat = gInventory.getObject(cat->getParentUUID());
}
std::stringstream s;
std::string delim("/");
std::reverse(path_elts.begin(), path_elts.end());
std::string result = "/" + boost::algorithm::join(path_elts, delim);
return result;
}
// Do various integrity checks on model, logging issues found and
// returning an overall good/bad flag.
LLPointer<LLInventoryValidationInfo> LLInventoryModel::validate() const
......@@ -3841,11 +3826,13 @@ LLPointer<LLInventoryValidationInfo> LLInventoryModel::validate() const
{
version_unknown_count++;
}
if (mCategoryLock.count(cat_id))
auto cat_lock_it = mCategoryLock.find(cat_id);
if (cat_lock_it != mCategoryLock.end() && cat_lock_it->second)
{
cat_lock++;
}
if (mItemLock.count(cat_id))
auto item_lock_it = mItemLock.find(cat_id);
if (item_lock_it != mItemLock.end() && item_lock_it->second)
{
item_lock++;
}
......@@ -3959,7 +3946,7 @@ LLPointer<LLInventoryValidationInfo> LLInventoryModel::validate() const
ft_counts_under_root[folder_type]++;
if (folder_type != LLFolderType::FT_NONE)
{
LL_DEBUGS("Inventory") << "Under root cat: " << get_full_path(cat) << " folder_type " << folder_type << LL_ENDL;
LL_DEBUGS("Inventory") << "Under root cat: " << getFullPath(cat) << " folder_type " << folder_type << LL_ENDL;
}
}
else
......@@ -3967,7 +3954,7 @@ LLPointer<LLInventoryValidationInfo> LLInventoryModel::validate() const
ft_counts_elsewhere[folder_type]++;
if (folder_type != LLFolderType::FT_NONE)
{
LL_DEBUGS("Inventory") << "Elsewhere cat: " << get_full_path(cat) << " folder_type " << folder_type << LL_ENDL;
LL_DEBUGS("Inventory") << "Elsewhere cat: " << getFullPath(cat) << " folder_type " << folder_type << LL_ENDL;
}
}
}
......@@ -4129,11 +4116,11 @@ LLPointer<LLInventoryValidationInfo> LLInventoryModel::validate() const
}
if (desc_unknown_count != 0)
{
LL_INFOS() << "Found " << desc_unknown_count << " cats with unknown descendent count" << LL_ENDL;
LL_DEBUGS() << "Found " << desc_unknown_count << " cats with unknown descendent count" << LL_ENDL;
}
if (version_unknown_count != 0)
{
LL_INFOS("Inventory") << "Found " << version_unknown_count << " cats with unknown version" << LL_ENDL;
LL_DEBUGS("Inventory") << "Found " << version_unknown_count << " cats with unknown version" << LL_ENDL;
}
// FIXME need to fail login and tell user to retry, contact support if problem persists.
......@@ -4146,6 +4133,25 @@ LLPointer<LLInventoryValidationInfo> LLInventoryModel::validate() const
return validation_info;
}
// Provides a unix-style path from root, like "/My Inventory/Clothing/.../myshirt"
std::string LLInventoryModel::getFullPath(const LLInventoryObject *obj) const
{
std::vector<std::string> path_elts;
std::map<LLUUID,bool> visited;
while (obj != NULL && !visited[obj->getUUID()])
{
path_elts.push_back(obj->getName());
// avoid infinite loop in the unlikely event of a cycle
visited[obj->getUUID()] = true;
obj = getObject(obj->getParentUUID());
}
std::stringstream s;
std::string delim("/");
std::reverse(path_elts.begin(), path_elts.end());
std::string result = "/" + boost::algorithm::join(path_elts, delim);
return result;
}
///----------------------------------------------------------------------------
/// Local function definitions
///----------------------------------------------------------------------------
......
......@@ -671,6 +671,7 @@ class LLInventoryModel
public:
void dumpInventory() const;
LLPointer<LLInventoryValidationInfo> validate() const;
std::string getFullPath(const LLInventoryObject *obj) const;
/** Miscellaneous
** **
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment