[evolution-patches] fix for the bug #116162 [calendar] [bnc]



Hi,
  Have attached the fix for the bug.

thanks, Chenthill.
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution-data-server/calendar/ChangeLog,v
retrieving revision 1.510.2.1
diff -u -p -r1.510.2.1 ChangeLog
--- ChangeLog	2 Sep 2005 18:47:31 -0000	1.510.2.1
+++ ChangeLog	12 Sep 2005 12:45:30 -0000
@@ -1,3 +1,12 @@
+2005-09-12  Chenthill Palanisamy  <pchenthill novell com>
+
+	Fixes #116162
+	* backends/groupwise/e-cal-backend-groupwise-utils.c:
+	(e_gw_connection_send_appointment): Check status in getItemsRequest.
+	* backends/groupwise/e-cal-backend-groupwise.c: 
+	(receive_object): Assign the modif_comp to comp only if the getItemsRequest
+	fails.
+
 2005-09-01  Chenthill Palanisamy  <pchenthill novell com>
 
 	Fixes #114384
Index: backends/groupwise/e-cal-backend-groupwise-utils.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/calendar/backends/groupwise/e-cal-backend-groupwise-utils.c,v
retrieving revision 1.64
diff -u -p -r1.64 e-cal-backend-groupwise-utils.c
--- backends/groupwise/e-cal-backend-groupwise-utils.c	31 Aug 2005 04:21:52 -0000	1.64
+++ backends/groupwise/e-cal-backend-groupwise-utils.c	12 Sep 2005 12:45:31 -0000
@@ -1334,10 +1334,12 @@ e_gw_connection_send_appointment (ECalBa
 
 	/*FIXME - handling recurrence items */
 	if (!*remove && status == E_GW_CONNECTION_STATUS_OK) {
-		EGwItem *item;
+		EGwItem *item = NULL;
+		EGwConnectionStatus stat;
 
-		status = e_gw_connection_get_item (cnc, container, item_id, "recipients message recipientStatus attachments default", &item);
-		*created_comp = e_gw_item_to_cal_component (item, cbgw);
+		stat = e_gw_connection_get_item (cnc, container, item_id, "recipients message recipientStatus attachments default", &item);
+		if (stat == E_GW_CONNECTION_STATUS_OK)
+			*created_comp = e_gw_item_to_cal_component (item, cbgw);
 	}
 
 	return status;
Index: backends/groupwise/e-cal-backend-groupwise.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/calendar/backends/groupwise/e-cal-backend-groupwise.c,v
retrieving revision 1.164.2.1
diff -u -p -r1.164.2.1 e-cal-backend-groupwise.c
--- backends/groupwise/e-cal-backend-groupwise.c	2 Sep 2005 18:47:32 -0000	1.164.2.1
+++ backends/groupwise/e-cal-backend-groupwise.c	12 Sep 2005 12:45:32 -0000
@@ -2128,7 +2128,6 @@ receive_object (ECalBackendGroupwise *cb
 	if (e_cal_component_has_attachments (comp))
 		fetch_attachments (cbgw, comp);
 
-	modif_comp = comp;
 	status = e_gw_connection_send_appointment (cbgw, priv->container_id, comp, method, &remove, &modif_comp);
 
 	if (status == E_GW_CONNECTION_STATUS_INVALID_CONNECTION)
@@ -2149,12 +2148,16 @@ receive_object (ECalBackendGroupwise *cb
 				e_cal_backend_notify_object_removed (E_CAL_BACKEND (cbgw), uid, e_cal_component_get_as_string (comp), NULL);
 		}
 		else {
-			char *cache_comp = NULL, *temp, *new_comp = NULL;
+			char *cache_comp = NULL, *uid, *new_comp = NULL;
 			ECalComponent *cache_component;
 			
-			e_cal_component_commit_sequence (modif_comp);
-			e_cal_component_get_uid (modif_comp, (const char **) &temp);	
-			cache_component = e_cal_backend_cache_get_component (priv->cache, temp, NULL);
+			if (!modif_comp)
+				modif_comp = g_object_ref (comp);
+			else
+				e_cal_component_commit_sequence (modif_comp);
+
+			e_cal_component_get_uid (modif_comp, (const char **) &uid);	
+			cache_component = e_cal_backend_cache_get_component (priv->cache, uid, NULL);
 			
 			if (cache_component) {
 				e_cal_component_commit_sequence (cache_component);
@@ -2162,7 +2165,6 @@ receive_object (ECalBackendGroupwise *cb
 			}
 
 			e_cal_backend_cache_put_component (priv->cache, modif_comp);	
-			e_cal_component_commit_sequence (modif_comp);
 			new_comp = e_cal_component_get_as_string (modif_comp);
 
 			if (cache_comp)
@@ -2172,7 +2174,7 @@ receive_object (ECalBackendGroupwise *cb
 				
 			g_free (cache_comp);
 			g_free (new_comp);
-			g_free (temp);
+			g_object_unref (modif_comp);
 		}
 		g_object_unref (comp);	
 		return GNOME_Evolution_Calendar_Success;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]