Ticket #1042 (closed defect: fixed)
cannot install new activity version
| Reported by: | sascha_silbe | Owned by: | tomeu |
|---|---|---|---|
| Priority: | Unspecified by Maintainer | Milestone: | 0.86 |
| Component: | sugar | Version: | Git as of bugdate |
| Severity: | Major | Keywords: | |
| Cc: | eben, garycmartin | Distribution/OS: | Unspecified |
| Bug Status: | New |
Description
After downloading the new version of Read Etexts (a later version was already installed) and clicking "Show in Journal", the following exception occured:
Traceback (most recent call last):
File "/usr/lib/pymodules/python2.5/dbus/connection.py", line 214, in maybe_handle_message
self._handler(*args, **kwargs)
File "/home/sascha.silbe/sugar-jhbuild/install/lib/python2.5/site-packages/jarabe/journal/model.py", line 380, in _datastore_updated_cb
updated.send(None, tree_id=tree_id, version_id=version_id)
File "/home/sascha.silbe/sugar-jhbuild/install/lib/python2.5/site-packages/sugar/dispatch/dispatcher.py", line 125, in send
response = receiver(signal=self, sender=sender, **named)
File "/home/sascha.silbe/sugar-jhbuild/install/lib/python2.5/site-packages/jarabe/journal/journalactivity.py", line 250, in __model_updated_cb
self._check_for_bundle(kwargs['tree_id'], kwargs['version_id'])
File "/home/sascha.silbe/sugar-jhbuild/install/lib/python2.5/site-packages/jarabe/journal/journalactivity.py", line 283, in _check_for_bundle
registry.install(bundle)
File "/home/sascha.silbe/sugar-jhbuild/install/lib/python2.5/site-packages/jarabe/model/bundleregistry.py", line 330, in install
raise AlreadyInstalledException
AlreadyInstalledException
jarabe.model.bundleregistry.BundleRegistry.install() contains the following code:
if self.get_bundle(bundle.get_bundle_id()):
raise AlreadyInstalledException
for installed_bundle in self._bundles:
if bundle.get_bundle_id() == installed_bundle.get_bundle_id() and \
bundle.get_activity_version() == \
installed_bundle.get_activity_version():
raise AlreadyInstalledException
elif bundle.get_bundle_id() == installed_bundle.get_bundle_id():
self.uninstall(installed_bundle, force=True)
get_bundle() contains a similar loop like install() but only checks the bundle id, not the activity version. So install() will always fail with AlreadyInstalledException, even when we're trying to install a different version.
After removing the if self.get_bundle... several other errors came up, so can't verify this as the correct fix (yet).
Attachments
Change History
Note: See
TracTickets for help on using
tickets.

