Re: [Evolution-hackers] e_cal/book_open() + only_if_exists
- From: Milan Crha <mcrha redhat com>
- To: evolution-hackers gnome org
- Subject: Re: [Evolution-hackers] e_cal/book_open() + only_if_exists
- Date: Tue, 14 Feb 2012 08:45:46 +0100
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]