After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 673430 - Can't read messages in virtual Junk/Trash folders
Can't read messages in virtual Junk/Trash folders
Status: RESOLVED FIXED
Product: evolution
Classification: Applications
Component: Mailer
3.6.x (obsolete)
Other Linux
: Normal normal
: ---
Assigned To: evolution-mail-maintainers
Evolution QA team
evolution[webkit]
Depends on:
Blocks:
 
 
Reported: 2012-04-03 13:06 UTC by Matthew Barnes
Modified: 2013-09-13 01:08 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Proposed patch (1.82 KB, patch)
2012-04-03 14:39 UTC, Dan Vrátil
committed Details | Review

Description Matthew Barnes 2012-04-03 13:06:55 UTC
Selecting messages in normal folders and search folders works fine after this commit:
http://git.gnome.org/browse/evolution/commit/?id=79dcf66c2f47307e622ae375cb3c8b1a788e75cc

But I still can't read messages in my virtual Junk or Trash folders.  I'm hitting the same assertion as what lead to my first commit, so I'm guessing it's probably another URI encoding bug:

   mail_request_send_async: assertion `emr->priv->efh' failed

This is currently at e-mail-request.c line 651.
Comment 1 Matthew Barnes 2012-04-03 13:19:16 UTC
Adding some print statements around the "formatters" hash table insertions and lookups...

Here's some (shortened) output for a folder that was problematic before my decoding commit due to the space character in "Mailing Lists".  It now works fine.

Inserting 'mail://.../Mailing Lists/GNOME/Evolution/66757'
Looking up (not decoded) 'mail://.../Mailing%20Lists/GNOME/Evolution/66757'
Looking up (decoded) 'mail://.../Mailing Lists/GNOME/Evolution/66757'

Interestingly, here's the output when I try to read from my Trash folder:

Inserting 'mail://.../.#evolution/Trash/Ydtt8Fhm526029'
Looking up (not decoded) 'mail://.../'
Looking up (decoded) 'mail://.../'

(The ... in all cases is "1333231746.1232.21/localhost.localdomain".  I left it off for brevity.)
Comment 2 Matthew Barnes 2012-04-03 13:25:32 UTC
I bet'cha the "#evolution/Trash/Ydtt8Fhm526029" part of the URI is stored in the SoupURI as a fragment, which doesn't get added to the assembled URI used for lookups:

   uri_str = g_strdup_printf ("%s://%s%s", uri->scheme, uri->host, uri->path);

Not sure where the leading dot went.

Any particular reason soup_uri_to_string() won't work here?
Comment 3 André Klapper 2012-04-03 13:47:56 UTC
Version = 3.3.x ?
Comment 4 Matthew Barnes 2012-04-03 13:50:18 UTC
Version fixed: 3.5.x.  Bugzilla must still be choosing 3.3.x by default.
Comment 5 Dan Vrátil 2012-04-03 14:39:06 UTC
Created attachment 211229 [details] [review]
Proposed patch

This patch encodes the CamelFolder name in mail URI so that "#" or other URL-unsafe characters are not parsed by SoupURI.

The only exception is "@", which SoupURI for some uknown reason automatically decodes when created. Therefor the service name is not being escaped.

Tested with IMAP and local folders, search vfolder and trash vfolder.
Comment 6 Matthew Barnes 2012-04-03 15:44:56 UTC
That works.  Tested against folder paths with spaces, vjunk, vtrash, and plain vfolders.
Comment 7 Dan Vrátil 2012-04-03 15:57:01 UTC
Commited to master as e4c0c101ee54034e1b3a9b1f11eb50d88acb9e66

http://git.gnome.org/browse/evolution/commit/?id=e4c0c101ee54034e1b3a9b1f11eb50d88acb9e66