aboutsummaryrefslogtreecommitdiffstats
path: root/camel
diff options
context:
space:
mode:
Diffstat (limited to 'camel')
-rw-r--r--camel/ChangeLog3
-rw-r--r--camel/providers/imap/camel-imap-folder.c18
2 files changed, 12 insertions, 9 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog
index 9a96178ae7..df450614e7 100644
--- a/camel/ChangeLog
+++ b/camel/ChangeLog
@@ -3,6 +3,9 @@
* providers/imap/camel-imap-folder.c (imap_refresh_info): Remove
cached info at the end of the summary when the folder shrinks
between sessions. Also remove an untrue comment.
+ (camel_imap_folder_new): Move the summary creation to after the
+ folder selection again, since it depends on the uidvalidity
+ having been set.
* providers/imap/camel-imap-store.c (get_folder): Fix up
summary_file to not include the namespace twice.
diff --git a/camel/providers/imap/camel-imap-folder.c b/camel/providers/imap/camel-imap-folder.c
index 16533dbc1c..38dd495eac 100644
--- a/camel/providers/imap/camel-imap-folder.c
+++ b/camel/providers/imap/camel-imap-folder.c
@@ -187,15 +187,6 @@ camel_imap_folder_new (CamelStore *parent, const char *folder_name,
short_name = folder_name;
camel_folder_construct (folder, parent, folder_name, short_name);
- imap_folder->summary = camel_imap_summary_new (summary_file, validity);
- if (!imap_folder->summary) {
- camel_object_unref (CAMEL_OBJECT (folder));
- camel_exception_setv (ex, CAMEL_EXCEPTION_SYSTEM,
- "Could not load summary for %s",
- folder_name);
- return NULL;
- }
-
response = camel_imap_command (imap_store, folder, ex, NULL);
if (!response) {
camel_object_unref ((CamelObject *)folder);
@@ -221,6 +212,15 @@ camel_imap_folder_new (CamelStore *parent, const char *folder_name,
}
camel_imap_response_free (response);
+ imap_folder->summary = camel_imap_summary_new (summary_file, validity);
+ if (!imap_folder->summary) {
+ camel_object_unref (CAMEL_OBJECT (folder));
+ camel_exception_setv (ex, CAMEL_EXCEPTION_SYSTEM,
+ "Could not load summary for %s",
+ folder_name);
+ return NULL;
+ }
+
imap_refresh_info (folder, ex);
if (camel_exception_is_set (ex)) {
camel_object_unref (CAMEL_OBJECT (folder));