Hi Patrick,

On Mar 4, 2010, at 18:49 , Patrick Ohly wrote:

> On Fri, 2010-02-26 at 15:05 +0000, Patrick Ohly wrote:
> [...]
>> So it seems that the engine does check for the remote ID, but only after
>> having already added the item again.
> 
> I think this was due to not enabling <resumesupport>. After setting
> that, the same test passes. Sorry for the confusion - I hadn't quite
> realized that suspend/resume was optional.

As said in the previous message, yes, for the server it is optional.

However, while tracking through the code I found that indeed in the server, the 
case of a client sending duplicate <Add>s was not handled at all. So even with 
<resumesupport> a repeated add from the client IMHO would have created a 
duplicate in the server DB.
As most clients always send <Replace> (including libsynthesis not so long ago), 
this case did not surface.

I now added a check for that in 3e687ddfca (server engine: added missing check 
for re-sent <Add> during resume.)

> Shouldn't the server have refused to resume with <resumesupport> off?

Yes. However, when you use a admin data plugin, dsResumeSupportedInDB() is 
checking the API version of the plugin:

pluginapids.cpp:941:

> /// returns true if DB implementation supports resume (saving of resume 
> marks, alert code, pending maps, tempGUIDs)
> bool TPluginApiDS::dsResumeSupportedInDB(void)
> {
>   if (fPluginDSConfigP->fDBApiConfig_Admin.Connected()) {
>     // we can do resume if plugin supports it
>     return 
> fPluginDSConfigP->fDBApiConfig_Admin.Version()>=sInt32(VE_InsertMapItem);
>   }
>   return inherited::dsResumeSupportedInDB();
> } // TPluginApiDS::dsResumeSupportedInDB
> 


...and <resumesupport> is irrelevant (so what I said in the previous message is 
not entirely correct - old plugins will AUTOMATICALLY disable resume; 
<resumesupport> is only relevant for SQL backends).

So it's even stranger that enabling <resumesupport> should have made the tests 
to pass now. ???


Lukas Zeller (l...@synthesis.ch)
- 
Synthesis AG, SyncML Solutions  & Sustainable Software Concepts
i...@synthesis.ch, http://www.synthesis.ch





_______________________________________________
os-libsynthesis mailing list
os-libsynthesis@synthesis.ch
http://lists.synthesis.ch/mailman/listinfo/os-libsynthesis

Reply via email to