On Mar 15, 2007, at 7:55 PM, Brian Kirsch wrote:

Hi Morgen,
As a follow up to what Mimi is saying see my comments inline.

-Brian


On Mar 15, 2007, at 4:18 PM, Mimi Yin wrote:

Okay, sorry the addressing fields/conflict discussion on the list was a little over my head. Why do changes to the addressing fields result in conflicts?

How is what I'm describing different from the Editor/Updater manually adding the Sender to the CC: field in the detail view?

(Just chatted with bkirsch, and the behavior I'm describing is *no* different than a user manually changing the addressing fields...so that leads me to think that there's an issue if changing the addressing fields raises conflicts. Morgen, can you speak to that?) If this is true, we should log a bug, even if just to keep track of it for post-preview.


The question is, does altering addressing fields result in conflicts on the receivers end?

A conflict is when both parties make a change to the same field. There are two possibilities I can think of: the receiver is making a change to the field (as well as the sender), or the peer State item is getting messed up and is forgetting what records the two peers had previously agreed on. If you can email me the debug output I can see right away.


With the attached patch, that represents latest changes to mail service to support Edit / Update, when I change the addressing fields on an Item (MailStamp) it raises a conflict for the receivers.

This may not be the intended behavior.

What would be ideal is if any changes to the addressing fields did not result in a conflict unless
a local change was made that contradicts the values in the update.
<chandler.diff>


-Brian

When I tried out this patch and emailed an update, I got the following error, which looks like changes were made to the shared item's deliveryExtension attribute in two different views:

Traceback (most recent call last):
File "/Users/morgen/dev/release/Library/Frameworks/ Python.framework/Versions/2.5/lib/python2.5/threading.py", line 440, in run
    self.__target(*self.__args, **self.__kwargs)
File "/Users/morgen/dev/release/Library/Frameworks/ Python.framework/Versions/2.5/lib/python2.5/site-packages/twisted/ python/threadpool.py", line 148, in _worker
    context.call(ctx, function, *args, **kwargs)
File "/Users/morgen/dev/release/Library/Frameworks/ Python.framework/Versions/2.5/lib/python2.5/site-packages/twisted/ python/context.py", line 59, in callWithContext return self.currentContext().callWithContext(ctx, func, *args, **kw) File "/Users/morgen/dev/release/Library/Frameworks/ Python.framework/Versions/2.5/lib/python2.5/site-packages/twisted/ python/context.py", line 37, in callWithContext
    return func(*args,**kw)
--- <exception caught here> ---
File "/Users/morgen/dev/release/Library/Frameworks/ Python.framework/Versions/2.5/lib/python2.5/site-packages/twisted/ internet/threads.py", line 25, in _putResultInDeferred
    result = f(*args, **kwargs)
File "/Users/morgen/dev/trees/vanilla/parcels/osaf/mail/base.py", line 569, in _tryCommit
    self.view.commit()
File "/Users/morgen/dev/trees/vanilla/repository/persistence/ DBRepositoryView.py", line 605, in commit
    self.refresh(mergeFn, None, notify)
File "/Users/morgen/dev/trees/vanilla/repository/persistence/ DBRepositoryView.py", line 299, in refresh
    forwards = self._refresh(mergeFn, version, notify)
File "/Users/morgen/dev/trees/vanilla/repository/persistence/ DBRepositoryView.py", line 335, in _refresh
    self._refreshForwards(mergeFn, self.itsVersion + 1, True)
File "/Users/morgen/dev/trees/vanilla/repository/persistence/ DBRepositoryView.py", line 487, in _refreshForwards
    conflicts, indexChanges, dangling)
File "/Users/morgen/dev/trees/vanilla/repository/persistence/ DBRepositoryView.py", line 900, in _applyChanges
    conflicts, dangling)
File "/Users/morgen/dev/trees/vanilla/repository/item/Values.py", line 1072, in _applyChanges
    nextValue = ask(MergeError.REF, name, newValue)
File "/Users/morgen/dev/trees/vanilla/repository/persistence/ DBRepositoryView.py", line 856, in ask
    self._e_1_overlap(reason, item, name)
File "/Users/morgen/dev/trees/vanilla/repository/persistence/ DBRepositoryView.py", line 942, in _e_1_overlap raise MergeError, ('callback', item, 'merging values for %s on % s failed because no merge callback was defined or because the merge callback(s) punted' %(name, item._repr_()), code) repository.persistence.RepositoryError.MergeError: (callback) merging FOO failed because merging values for osaf.pim.mail.MailStamp.deliveryExtension on <Note: daff51ca- d37b-11db-e446-b8dfba492aa3> failed because no merge callback was defined or because the merge callback(s) punted, reason code: REF

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Open Source Applications Foundation "Design" mailing list
http://lists.osafoundation.org/mailman/listinfo/design

Reply via email to