diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2012-08-24 16:45:20 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2012-08-24 17:18:28 +0200 |
commit | 1b40fbe41459a2231870af94a06263d89af554a6 (patch) | |
tree | 509f78e5763f55fa1db8d39d774a978fb96e82a7 /desktop/source/deployment/manager/dp_extensionmanager.cxx | |
parent | 35d474ff8c36d12e2afafee8a061745e47ef4fb0 (diff) |
fdo#53968 etc.: Fix more "doesn't start after upgrade" problems
* fdo#53968 revealed that multiple soffice.bin instances can run removeTree in
parallel. Therefore, demoted failures from exceptions to SAL_WARNs. (And
keeping fingers crossed.)
* a8cdce148c76c93c5d41820610d6e6ac175e03a7 "fdo#53655: Ignore failure to remove
directories (as happens on Windows XP)" was due to a forgotten
osl::Directory::close before calling osl::Directory::remove after all.
* UserInstallations have been seen in the wild where no extensions were
installed per-user (any longer), but user/uno_packages/cache/registry/
com.sun.star.comp.deployment.component.PackageRegistryBackend/*.rdb files
contained data nevertheless. To reliably clean out any old junk,
refreshBundledExtensionsDir has been extended to cleanExtensionsCache which in
tandem with an extended Desktop::SynchronizeExtensionRepositories now cleanly
re-installs all bundled, shared, and per-user extensions after a LO upgrade.
Change-Id: Ic6b5b6c1945d76eb3a65b6cd4512a657b7a835a0
Diffstat (limited to 'desktop/source/deployment/manager/dp_extensionmanager.cxx')
-rw-r--r-- | desktop/source/deployment/manager/dp_extensionmanager.cxx | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/desktop/source/deployment/manager/dp_extensionmanager.cxx b/desktop/source/deployment/manager/dp_extensionmanager.cxx index 68403f1af6cb..b3c21b4db52e 100644 --- a/desktop/source/deployment/manager/dp_extensionmanager.cxx +++ b/desktop/source/deployment/manager/dp_extensionmanager.cxx @@ -1205,9 +1205,10 @@ uno::Sequence< uno::Sequence<Reference<deploy::XPackage> > > } } -//only to be called from unopkg!!! +// Only to be called from unopkg or soffice bootstrap (with force=true in the +// latter case): void ExtensionManager::reinstallDeployedExtensions( - OUString const & repository, + sal_Bool force, OUString const & repository, Reference<task::XAbortChannel> const & xAbortChannel, Reference<ucb::XCommandEnvironment> const & xCmdEnv ) throw (deploy::DeploymentException, @@ -1220,10 +1221,11 @@ void ExtensionManager::reinstallDeployedExtensions( xPackageManager = getPackageManager(repository); ::osl::MutexGuard guard(getMutex()); - xPackageManager->reinstallDeployedPackages(xAbortChannel, xCmdEnv); + xPackageManager->reinstallDeployedPackages( + force, xAbortChannel, xCmdEnv); //We must sync here, otherwise we will get exceptions when extensions //are removed. - dp_misc::syncRepositories(xCmdEnv); + dp_misc::syncRepositories(force, xCmdEnv); const uno::Sequence< Reference<deploy::XPackage> > extensions( xPackageManager->getDeployedPackages(xAbortChannel, xCmdEnv)); |