GNOME Bugzilla – Bug 777085
vCard empty value could break next parameter name parsing
Last modified: 2017-01-13 10:29:16 UTC
Created attachment 343238 [details] Viewing contact that has phone number. As you can see not in list view. Phone numbers not displayed - Edit and then will be displayed. Evolution: 3.22.3 OS: Antergos (arch distro) See screenshot.
Thanks for a bug report. How was the contact created, please? I mean, when there are the phone numbers, then they should be added somehow, no? And if you added them within the evolution, then it's the Edit action, right? I ask these silly questions, because when I try to add a contact and fill those values then they show properly immediately, but also the next start, from which I suppose that you most likely imported the contact from a file. Can it be it? When you Edit the contact then it's re-saved in a way which the evolution understands the best, which includes to set attribute parameters for the values as needed by the List View.
This one contact was added from within evolution - No importing. It will display correctly when added. Close and reopen evolution and the phone numbers are not displayed. Edit a number e.g. change country prefix. For me this is 0 or 44 then re-save and the number will immediately display in the list view.
That's basically what I tried. I added a contact with similar values as you had, then saved it. The List View looked fine. I closed the evolution, and immediately opened it in the Contacts view and the two phone columns were filled as expected here, showing the saved value. I also used 3.22.3, though on Fedora. In case you are able to reproduce this with a new contact, could you save it as a vCard, when it'll not show the two columns, please? It's in the context menu above it. By the way, when you re-edit the contact and then close the evolution and run it again, will the values stick afterwards, or you are back in the state when the List View doesn't show proper values?
Every time I create a test contact and export it. All data is within the vCard. If I edit a contact i.e. change the country code prefix and then save the phone number appears in the list view. If I add contacts or edit contacts. close evolution and restart. No phone numbers will be displayed in the list view.
Note: This is evolution 3.22.3 on Antergos (arch). Evolution is built with some newer libraries. libphonenumber being one version 8.0.0. I am going to create a fedora 25 VM and dual test.
Fedora doesn't use the libphonenumber, which is the main difference. I just compiled the libphonenumber and apart of finding some build issues in the current development version (which I fixed) I can reproduce the issue when the libphonenumber is used.
The problem was that the libphonenumber added a parameter X-EVOLUTION-E164 with an empty value, which constructed the attribute like this: TEL;X-EVOLUTION-E164=002233445566,;TYPE=HOME,VOICE:002233445566 but when parsing such empty value the following semi-colon after the comma had been used as part of the next parameter name, instead of ignored, thus instead of having 'TYPE' the parameter had been named ';TYPE', which broke the logic to find the value based on the attribute 'TYPE'. I fixed that and added a test for it. Created commit abdbd9e in eds master (3.23.4+) Created commit af86cec in eds gnome-3-22 (3.22.4+)
Thanks Milan. Will test myself off a build and have asked arch devs to update with this by adding your patch pre next release.
(In reply to Phil Wyett from comment #8) > Will test myself off a build and have asked arch devs to update with this by > adding your patch pre next release. The 3.22.4 release is planed on the next Monday, January 16th.
Yes, that was mentioned downstream by an arch dev. I did a build for peace of mind and the patch resolves the issue for me.