Index: src/libchcore/TTaskDefinition.cpp =================================================================== diff -u -N -r503a68180cbb933c97e9af965744bf106994c05a -r2e384de25de613cb582a966df7d1cb9468f1c825 --- src/libchcore/TTaskDefinition.cpp (.../TTaskDefinition.cpp) (revision 503a68180cbb933c97e9af965744bf106994c05a) +++ src/libchcore/TTaskDefinition.cpp (.../TTaskDefinition.cpp) (revision 2e384de25de613cb582a966df7d1cb9468f1c825) @@ -188,16 +188,13 @@ m_bModified = false; // get information from config file - // task unique id - use if provided, generate otherwise - if (!GetConfigValue(rDataSrc, _T("TaskDefinition.UniqueID"), m_strTaskName) || m_strTaskName.IsEmpty()) - { - boost::uuids::random_generator gen; - boost::uuids::uuid u = gen(); - m_strTaskName = boost::lexical_cast(u).c_str(); + // NOTE: task unique id is not read from the config by design; + // by using the value, CH tried to re-use the task DB causing problems. + // So now, always a new identifier is generated. + boost::uuids::random_generator gen; + boost::uuids::uuid u = gen(); + m_strTaskName = boost::lexical_cast(u).c_str(); - m_bModified = true; - } - // basic information // source paths to be processed if (!GetConfigValue(rDataSrc, _T("TaskDefinition.SourcePaths.Path"), m_vSourcePaths) || m_vSourcePaths.IsEmpty()) @@ -267,7 +264,8 @@ { // get information from config file // task unique id - use if provided, generate otherwise - SetConfigValue(rConfig, _T("TaskDefinition.UniqueID"), m_strTaskName); + // NOTE: not storing the task ID is by design. Loading same task twice caused problems + // when importing and was disabled. With that, storing was no longer needed. // basic information SetConfigValue(rConfig, _T("TaskDefinition.SourcePaths.Path"), m_vSourcePaths);