ConfigObjectUtility#CreateObject(): check config objects for duplicates

... not to delete already existing objects during a trial of re-creation.

refs #7726
This commit is contained in:
Alexander A. Klimov 2020-12-16 16:45:22 +01:00
parent f7e368564f
commit 4051bc9c8f
1 changed files with 6 additions and 4 deletions

View File

@ -152,11 +152,13 @@ bool ConfigObjectUtility::CreateObject(const Type::Ptr& type, const String& full
{
CreateStorage();
ConfigItem::Ptr item = ConfigItem::GetByTypeAndName(type, fullName);
{
auto configType (dynamic_cast<ConfigType*>(type.get()));
if (item) {
errors->Add("Object '" + fullName + "' already exists.");
return false;
if (configType && configType->GetObject(fullName)) {
errors->Add("Object '" + fullName + "' already exists.");
return false;
}
}
String path;