aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-session.c
diff options
context:
space:
mode:
Diffstat (limited to 'camel/camel-session.c')
-rw-r--r--camel/camel-session.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/camel/camel-session.c b/camel/camel-session.c
index e21d6b7ef2..206553daf3 100644
--- a/camel/camel-session.c
+++ b/camel/camel-session.c
@@ -351,7 +351,7 @@ get_service (CamelSession *session, const char *url_string,
CamelURL *url;
CamelProvider *provider;
CamelService *service;
-
+ CamelException internal_ex;
url = camel_url_new (url_string, ex);
if (!url)
return NULL;
@@ -379,8 +379,10 @@ get_service (CamelSession *session, const char *url_string,
}
service = (CamelService *)camel_object_new (provider->object_types[type]);
- camel_service_construct (service, session, provider, url, ex);
- if (camel_exception_is_set (ex)) {
+ camel_exception_init (&internal_ex);
+ camel_service_construct (service, session, provider, url, &internal_ex);
+ if (camel_exception_is_set (&internal_ex)) {
+ camel_exception_xfer (ex, &internal_ex);
camel_object_unref (CAMEL_OBJECT (service));
service = NULL;
} else {