diff --git a/framework/source/services/pathsettings.cxx b/framework/source/services/pathsettings.cxx index afebdab5f7ae..9eef666ac247 100644 --- a/framework/source/services/pathsettings.cxx +++ b/framework/source/services/pathsettings.cxx @@ -648,6 +648,9 @@ void PathSettings::impl_storePath(std::unique_lock& g, const PathSet PathInfo aResubstPath(aPath); impl_subst(g, aResubstPath, true); + // unlock because writeRelativeKey and friends might trigger a listener which calls back into us + g.unlock(); + // update new configuration if (! aResubstPath.bIsSinglePath) { @@ -676,6 +679,8 @@ void PathSettings::impl_storePath(std::unique_lock& g, const PathSet xProps->setPropertyValue(aResubstPath.sPathName, css::uno::Any()); ::comphelper::ConfigurationHelper::flush(xCfgOld); } + + g.lock(); } // static