Re: [Evolution-hackers] e_cal/book_open() + only_if_exists



On Mon, 2012-02-13 at 21:52 +0100, Patrick Ohly wrote:
>   * A second invocation of SyncEvolution finds the definition of the
>     system address book via e_book_get_addressbooks() and tries to
>     open it with e_book_open(only_if_exists=false), which then fails
>     with various errors, depending on the EDS version ("Cannot open
>     book: db error 0x2 (No such file or directory)" in 3.2,
>     "DB_RUNRECOVERY" in 3.3).
> 
> The problem can be avoided by always passing only_if_exists=true to
> the open calls. The way how the API is defined and/or implemented,
> creating an database definition and creating the actual database files
> are two different steps.

	Hi,
that's rather a bug in the backend. Calling with only_if_exists=false
might mean that the backend should create a new book/calendar, in case
it's not available yet. Otherwise, if you call with only_if_exists=true,
the backend should claim an error when the requested book/calendar
cannot be opened.

The logic in the backend's code seems to be inverted, from your
description.
	Bye,
	Milan



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