Bug 754383

Summary: Error loading calendar
Product: [Fedora] Fedora Reporter: Johan Vervloet <bulk>
Component: evolution-mapiAssignee: Matthew Barnes <mbarnes>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 16CC: mbarnes, mcrha
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-11-23 07:45:15 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Attachments:
Description Flags
screenshot illustrating the problem none

Description Johan Vervloet 2011-11-16 10:35:34 UTC
Created attachment 533962 [details]
screenshot illustrating the problem

Description of problem:

I use the evolution-mapi extension to read the mail on our Exchange 2007 server at work.  But I cannot connect to my calendar on the Exchange server.

The calendar is shown on the calendar view, but when I click on it, a message appears, saying 'Error loading calendar.  No backend factory for 'mapi' of''VEVENT''.

Version-Release number of selected component (if applicable):

Name        : evolution-mapi
Arch        : x86_64
Version     : 3.2.1
Release     : 1.fc16


How reproducible:


Steps to Reproduce:
1. Open evolution
2. Click 'calendar'
3. Highlight the calendar on the Exchange server

Actual results:

Error message appears (see screenshot)

Expected results:

Calendar items shown

Additional info:

Comment 1 Milan Crha 2011-11-22 08:50:01 UTC
Thanks for a bug report. It seems like the calendar backend installation for MAPi calendars didn't complete correctly. Could you try the following steps, please?
a) close evolution and all evolution-related processes
   (also through evolution --force-shutdown command)
b) make sure no other e-calendar-factory is running
c) run the e-calendar-factory in one terminal, like:
   $ /usr/libexec/e-calendar-factory
d) on another terminal run evolution in calendar and choose the MAPI calendar:
   $ evolution -c calendar
e) then see what will be shown on the console of the e-calendar-factory.
   It should name all the backends it tries to load, some of them should be
   those for MAPI. That is shown even before the evolution is running.

Could you paste relevant parts (or whole output) from the e-calendar-factory console here, please? Thanks in advance.

Comment 2 Johan Vervloet 2011-11-22 10:06:18 UTC
Hi,
Thanks for the reply.

I tried what you told, and now the calendar is showing up.  (I had to enter my password 4 times, but in the end it works.)  So I guess the bug is invalid - I'm sorry about that.

I didn't try to run evolution again after I reported the bug.  I tried to restart evolution back then, but maybe I didn't kill all the processes, and a reboot might have solved it.

For what it's worth, here is the output from e-calendar-factory after starting the calendar:

(e-calendar-factory:9724): camel-WARNING **: No from set for message

(e-calendar-factory:9724): GLib-CRITICAL **: g_utf8_collate: assertion `str1 != NULL' failed

(e-calendar-factory:9724): GLib-CRITICAL **: g_utf8_collate: assertion `str1 != NULL' failed

(e-calendar-factory:9724): camel-WARNING **: No from set for message

(e-calendar-factory:9724): GLib-CRITICAL **: g_utf8_collate: assertion `str1 != NULL' failed


But in the end, it seems to work.  Thank you anyway for replying to my problem!

Comment 3 Milan Crha 2011-11-23 07:45:15 UTC
Those critical warnings are not nice, but should be harmless. Did you install evolution-mapi and immediately configured your MAPI account? If yes, then the explanation is simple: when you login, the evolution-alarm-notify process is run, which runs e-calendar-factory. The e-calendar-factory reads all backends on its start only. Then you installed new package, which added its backend to the right place, but because the factory was already running, then it doesn't know about that and claims your error. When you restart computer, or just close all evolution processes including those two mentioned above, then the next evolution start will be the factory run and it reads the new backend as well, which makes it behave as expected.

This is just a theory, though. I'm closing this as requested. Thanks.

Comment 4 Johan Vervloet 2011-11-23 08:01:36 UTC
You're probably right.  Thanks again.