6.0.0-alpha12
6/7/25

[#5041] Sync.php: createUidMap not called for last entry in each message
Summary Sync.php: createUidMap not called for last entry in each message
Queue Synchronization
Type Bug
State Not A Bug
Priority 1. Low
Owners karsten (at) horde (dot) org
Requester patrick.abiven (at) apitech (dot) fr
Created 02/26/2007 (6676 days ago)
Due
Updated 03/30/2007 (6644 days ago)
Assigned 02/26/2007 (6676 days ago)
Resolved 03/30/2007 (6644 days ago)
Github Issue Link
Github Pull Request
Milestone
Patch No

History
03/30/2007 06:40:29 PM Karsten Fourmont Comment #3
State ⇒ Not A Bug
Reply to this comment
I guess it's not a bug in our code then?

But strange that it breaks with older pear packages...


02/28/2007 10:10:39 AM patrick (dot) abiven (at) apitech (dot) fr Comment #2 Reply to this comment
Hello

It seems to be more complex that what I suggested.

We have two horde instances (test, production) having different pear packages.

In the test instance, we need to add the last entry of each message 
(such as I suggested), otherwise the entry is missing.

HTTP_Request 1.4.0

XML_Parser 1.2.7

XML_RPC     1.5.1



But in the production instance, the CVS code works fine (If we add the 
suggested code, the last entry of each message is doubled).

HTTP_Request 1.3.0

XML_Parser 1.0.1

WML_RPC   1.1.0



Regards

Patrick
02/26/2007 05:33:27 PM Jan Schneider State ⇒ Assigned
Assigned to Karsten Fourmont
 
02/26/2007 04:43:40 PM patrick (dot) abiven (at) apitech (dot) fr Comment #1
Priority ⇒ 1. Low
Type ⇒ Bug
Summary ⇒ Sync.php: createUidMap not called for last entry in each message
Queue ⇒ Synchronization
State ⇒ Unconfirmed
Reply to this comment
Hello

When synchronizing (reload device) a large number of turba contacts 
(525), the last contact of each SyncML message is added (log 'add: 
<suid>') but the corresponding uidMap is not created (the log 'created 
Map for .. ' is missing). So at the end, we get 512 contacts instead 
of 525.



It seems that in Sync.php a few lines are missing in createSyncOutput().

After detecting that 'max msg size approached', we still need to add 
the last entry, before calling the return statement.



}

line 438: + $output->outputSyncCommand('Add',

                                                                       
         $clientContent,

                                                                       
         $clientContentType,

                                                                       
         $clientEncodingType,

                                                                       
        null,

                                                                       
        $suid);

line 444: + $this->_server_add_count++;



$messageFull = true;



Hope this helps.

Regards

Patrick

Saved Queries