diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2013-02-07 15:37:57 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2013-02-07 15:42:39 +0100 |
commit | 57955e1961181ffe7e77c23da7fb73db5d545f4c (patch) | |
tree | ebc8c4f075700d5590089d0dc8fb2e303e047b6c /desktop | |
parent | f3e42e07da568553b7e2c056259a2667d6789ca3 (diff) |
Revert "Cleanly remove an extension again that cannot be activated while installing it"
This reverts commit 3c71fa1e5ee6cd83f713c65a372006bc3aef0953. There are cases
(like failure to install a per-user extension during upgrade), where the user
may want to still see the broken extension in the Extension Manager, instead of
it "disappearing completely." A better fix would be to roll back registration
of the broken extension completely, so that "unopkg list" would not list the
first half of its parts as "is registered: yes" and the second half as "is
registered: no."
Diffstat (limited to 'desktop')
-rw-r--r-- | desktop/source/deployment/manager/dp_extensionmanager.cxx | 22 |
1 files changed, 3 insertions, 19 deletions
diff --git a/desktop/source/deployment/manager/dp_extensionmanager.cxx b/desktop/source/deployment/manager/dp_extensionmanager.cxx index 194dd875269f..9add42544d8a 100644 --- a/desktop/source/deployment/manager/dp_extensionmanager.cxx +++ b/desktop/source/deployment/manager/dp_extensionmanager.cxx @@ -693,10 +693,6 @@ Reference<deploy::XPackage> ExtensionManager::addExtension( xOldExtension ); { - bool added = false; - OUString sNewExtensionIdentifier; - OUString sNewExtensionFileName; - // In this garded section (getMutex) we must not use the argument xCmdEnv // because it may bring up dialogs (XInteractionHandler::handle) this //may potententially deadlock. See issue @@ -741,7 +737,6 @@ Reference<deploy::XPackage> ExtensionManager::addExtension( xNewExtension = xPackageManager->addPackage( url, properties, OUString(), xAbortChannel, Reference<ucb::XCommandEnvironment>()); - added = true; //If we add a user extension and there is already one which was //disabled by a user, then the newly installed one is enabled. If we //add to another repository then the user extension remains @@ -750,8 +745,9 @@ Reference<deploy::XPackage> ExtensionManager::addExtension( if (repository == "user") bUserDisabled2 = false; - sNewExtensionIdentifier = dp_misc::getIdentifier(xNewExtension); - sNewExtensionFileName = xNewExtension->getName(); + // pass the two values via variables to workaround gcc-4.3.4 specific bug (bnc#655912) + OUString sNewExtensionIdentifier = dp_misc::getIdentifier(xNewExtension); + OUString sNewExtensionFileName = xNewExtension->getName(); activateExtension( sNewExtensionIdentifier, sNewExtensionFileName, @@ -796,18 +792,6 @@ Reference<deploy::XPackage> ExtensionManager::addExtension( //If the user aborted installation then a ucb::CommandAbortedException //is thrown. //Use a private AbortChannel so the user cannot interrupt. - if (added) { - try { - xPackageManager->removePackage( - sNewExtensionIdentifier, sNewExtensionFileName, - css::uno::Reference< css::task::XAbortChannel >(), - css::uno::Reference< css::ucb::XCommandEnvironment >()); - } catch (css::uno::Exception & e) { - SAL_WARN( - "desktop.deployment", - "ignoring Exception " << e.Message); - } - } try { if (xExtensionBackup.is()) |