summaryrefslogtreecommitdiff
path: root/desktop/source/deployment
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2012-11-19 16:06:43 +0100
committerStephan Bergmann <sbergman@redhat.com>2012-11-19 16:14:12 +0100
commita05e1e4967a21f3dd5a49215d97df99a7ec84f18 (patch)
tree902544cb970051a4027331c3f01440bcc56b4855 /desktop/source/deployment
parent8648c974ea5e222027a5ac1c9a01cd9ac6e344a8 (diff)
fdo#57224: Fix logic of considering optional/ambiguous value as "disabled"
...so that only a "not-registered" that is non-optional and non-ambiguous is considered as "disabled" by user's intention. Other combinations can occur for broken extensions (that will thus become disabled again anyway when we try to automatically enable them) and for originally enabled extensions for which cleanExtensionCache in desktop/source/app/app.cxx has forecefully removed user/uno_packages/cache/registry/com.sun.star.comp.deployment.component.PackageRegistryBackend/unorc (and which should rather be kept enabled). Change-Id: Ic85b609ec9b3634cfa94a77151d42c07b9488030
Diffstat (limited to 'desktop/source/deployment')
-rw-r--r--desktop/source/deployment/manager/dp_extensionmanager.cxx6
1 files changed, 3 insertions, 3 deletions
diff --git a/desktop/source/deployment/manager/dp_extensionmanager.cxx b/desktop/source/deployment/manager/dp_extensionmanager.cxx
index b0c65e026330..5f701c609bae 100644
--- a/desktop/source/deployment/manager/dp_extensionmanager.cxx
+++ b/desktop/source/deployment/manager/dp_extensionmanager.cxx
@@ -1245,9 +1245,9 @@ void ExtensionManager::reinstallDeployedExtensions(
{
beans::Optional< beans::Ambiguous< sal_Bool > > registered(
extensions[pos]->isRegistered(xAbortChannel, xCmdEnv));
- if (!registered.IsPresent
- || registered.Value.IsAmbiguous
- || !registered.Value.Value)
+ if (registered.IsPresent &&
+ !(registered.Value.IsAmbiguous ||
+ registered.Value.Value))
{
const OUString id = dp_misc::getIdentifier(extensions[ pos ]);
OSL_ASSERT(!id.isEmpty());