summaryrefslogtreecommitdiff
path: root/desktop
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2013-02-07 15:37:57 +0100
committerStephan Bergmann <sbergman@redhat.com>2013-02-07 15:42:39 +0100
commit57955e1961181ffe7e77c23da7fb73db5d545f4c (patch)
treeebc8c4f075700d5590089d0dc8fb2e303e047b6c /desktop
parentf3e42e07da568553b7e2c056259a2667d6789ca3 (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.cxx22
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())