Latest Findings: Root cause for interop isssue Funambol 6.5 vs Horde 4 found, but how to fix?

Christian Bomhardt <[email protected]>
Newsgroups gmane.comp.horde.sync
Message-ID <[email protected]>
On 09.11.2011 19:59, Christian Bomhardt wrote:
> On 09.11.2011 19:07, Jan Schneider wrote:
>> Please don't top-post.
>>
>> Zitat von Christian Bomhardt <[email protected]>:
>>
>>> On 09.11.2011 12:31, Jan Schneider wrote:
>>>>
>>>> Zitat von Christian Bomhardt <[email protected]>:
>>>>
>>>>> On 09.11.2011 12:02, Jan Schneider wrote:
>>>>>>
>>>>>> Zitat von [email protected]:
>>>>>>
>>>>>>> Zitat von Christian Bomhardt <[email protected]>:
>>>>>>>
>>>>>>>> Hi experts,
>>>>>>>>
>>>>>>>> now, I managed to find the root cause why syncing of Horde 4 with
>>>>>>>> my Funambol 6.5.18 (Windows Mobile) doesn't work (with old Horde
>>>>>>>> Webmail it worked fine)
>>>>>>>>
>>>>>>>> The APIs do (no longer?) support the desired content types:
>>>>>>>> (see below error output after I added according logging (seems 
>>>>>>>> that
>>>>>>>> the exception currently thrown in export messages of API is not
>>>>>>>> logged accordingly or I have overseen it):
>>>>>>>>
>>>>>>>> 2011-11-08T21:38:49+00:00 ERR: HORDE [kronolith] Kronolith
>>>>>>>> unspported content type text/x-s4j-sife [pid 19212 on line 794 of
>>>>>>>> "/kronolith/lib/API.php
>>>>>>>> 2011-11-08T21:38:49+00:00 ERR: HORDE [nag] Unsupported Content
>>>>>>>> text/x-s4j-sift [pid 19212 on line 1061 of "/nag/lib/API.php
>>>>>>>> 2011-11-08T21:38:49+00:00 ERR: HORDE [mnemo] Mnemo Export
>>>>>>>> unsupported Content Type text/x-s4j-sifn [pid 19212 on line 276 of
>>>>>>>> "/mnemo/lib/API.php"
>>>>>>>>
>>>>>>>> Is it a bug that these content types are (no longer) supported? 
>>>>>>>> Any
>>>>>>>> hints how to best include it again?
>>>>>>>
>>>>>>> The SIF-X content types are a invention of Funambol and they have
>>>>>>> ceased using it since Version 8 as far as i remember. So this
>>>>>>> content type is dead and i doubt it will be included in Horde4.
>>>>>>> Your only chance is to get a newer than 8 Funambol client.
>>>>>>
>>>>>> They are still supported by Horde. It looks like your client is not
>>>>>> detected as a Funambol/Sync4j client though.
>>>>>>
>>>>>> Jan.
>>>>>>
>>>>> Hi Jan,
>>>>>
>>>>> thanks for the info. During my debugging I found out that coding in
>>>>> ../PEAR/Horde/SyncMl/Device/Sync4j is executed. Is in that case your
>>>>> assumption still true?
>>>>>
>>>>> How/where can I trace to get it fixed?
>>>>
>>>> See the wiki for how to create syncml logs.
>>>>
>>> Hi,
>>>
>>> pls find attached the logs from /tmp/sync. For simplicity, I only 
>>> synced notes.
>>>
>>> Horde Version: 4.0.11
>>> Funambol: 6.5.18 (HTC Touch 3g)
>>> No PHP errors showed up in the PHP error log
>>
>> This doesn't look like a correct log. It's from synchronizing from 
>> server to client, but your problem was when synchronizing from client 
>> to server, right?
>>
>> Jan.
>>
> Hi Jan,
>
> it is the correct log. I am synchronizing from server to client. I 
> setup funambol to only "sync"/copy from server to phone as I never 
> maintain entries on the mobile (too difficult) and I only sync 
> occasionally. (to be honest: I do not fully trust these syncs - so I 
> prefer having valid data on horde and maybe partially 
> invalid/incomplete data on my phone instead of messing all up for the 
> very very rare use case to adjust anything directly on the mobile...
>
> Anything else I can do to help analyzing?
>
> By the way - does anybody know where to find valid x-s4j-sif* sync 
> samples? I could maybe hack it into the existing code, but I don't 
> find out how it should look like to work...
>
> thanks, Christian

Hi,

pls find below my latest findings why syncing out of the box doesn't work:

Client request somehow calls into ../SyncMl/Sync.php, method 
createSyncOutput

Here, below /* Handle additions */ (in my modified file row 485)
$c = $backend->retrieveEntry(.,ct$,..) is called

with $ct=Funambol Content types, e.g. text/x-s4j-sife

This ends up in corresponding Application/lib/Api.php =>export method

All my export methods do not return anything for the funambol content 
types but throw an exception

Potential ways to fix as of my impression:
a)Adjust API export methods to return valid funambol data (e.g. 
text/x-s4j-sife) and everything should be fine
b)Adjust Sync to call retrieveEntry with content types supported by the 
API->export and then run through the content type conversion as already 
implemented
c)Different approach I have not yet considered

If I would only fix it for myself, I would probably pick approach A as 
this looks easier for me - but will get broken with next upgrade. 
Approach B looks more like a generic, solid patch.

Pls advice.
Any comments or remarks?

Thanks,
Christian



-- 
sync mailing list - Join the hunt: http://horde.org/bounties/#sync
Frequently Asked Questions: http://horde.org/faq/
To unsubscribe, mail: [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.