Saturday, November 14, 2009

How to Refresh Sync from Client

Recently I found that when doing “Refresh from Client” with large volume of data, the Funambol sever will close the connection after the first batch of contacts is sent from the client and the server sends back a status messages. So, only the first batch of contacts is added to the server.

When doing similar operation with Funambol Client plug-in for Outlook, things seem to be all right. Checking the detailed log of the plug-in, I found the sync package is with Replace commands rather than Add commands. This looks strange and inconsistent:
1. When doing “Refresh from Server”, the server send Add commands, and the client will delete local data first before adding records from server.
2. When doing slow sync, the server is working fine with multiple messages of a sync package containing Add commands from client.

I would suspect that the Funambol server might have a bug in dealing with multiple messages of a sync package during the operation of “Refresh from Client”. And the Funambol add-in for Outlook was just made a workaround of using replace commands instead.

The workaround in SyncML.NET is as following:
1. Refresh from Client with an empty dataset, in order to delete all on the server.
2. Slow sync so all local records will be added to the server.

Friday, September 25, 2009

Funambol Mozilla Plugin 0.5 can not sync home address

During testing, I found that Funambol Mozilla Plugin 0.5 can not sync home address, while the one for Outlook is OK.

Bug tracker at https://sourceforge.net/tracker/index.php?func=detail&aid=1803678&group_id=149326&atid=777037

Tuesday, September 22, 2009

How SyncML Clients handle line breaks

During the development of SyncML .NET, I tested with SyncML.NET for Open Contacts, Funambol Client for MS Outlook, and Funambol Client for Mozilla Thunderbird, occasionally with some Web base address book programs.

In an address book program, generally there's a notes field which could store multiple lines. The street field may or may not support multiple lines, while Open Contacts and Outlook support.

Test 1:
1. In OC, a street field has multiple lines. When sending the field to Funambol server, I could see the Base64 encoded SIF-C data preserved the line breaks.
2. Sync the data to MS Outlook with the Funambol client, the line breaks in Outlook became spaces.
3. Replacing OC data with the Server data showed that the line breaks were converted to spaces, thus the street filed in OC had only one line.

Test 2:
1. In Outlook, the street field has multiple lines. Sync the data to the server. The data encapsulated in vCard did has proper line breaks coded as "=0D=0A"
2. Sync the data from the server to OC, the street field in OC had multiple lines of text, but with an extra heading space on each line.
3. Sync the data from the server to Thunderbird, the street field become single line, and the line breaks were replaced with commas and spaces.

Test 3:
1. In Outlook, the street field has multiple lines. Sync the data to the server.
2. Replace the data of Outlook with data from the server, the street field in Outlook had multiple lines of text, but with an extra heading space on each line.

Test 4:
1. In OC, the street field has multiple lines. Sync the data to the server.
2. Replace the data of OC with data from the server, the street field in OC had single line.

Apparently, the vCard store and the Sifc store of Funambol server v8.0 have some bugs or features when handling multiple lines of the street field.