RE: [Evolution-hackers] Creating folders via CORBA interface

Well, to figure out why the crash was happening I stumbled across the
evolution --debug=[debug file path] which yields the assertion:

evolution-shell-ERROR **: file e-local-storage.c: line 450 (create_folder):
assertion failed: (g_path_is_absolute (path))

When I change the parameters to:
void asyncCreateFolder (/home/patrickg/evolution/local/NewFolder,
"calendar", "New Folder", "", listener);

Same result when I tried:
void asyncCreateFolder (/home/patrickg/evolution/local/NewFolder,
"calendar", "New Folder", "/home/patrickg/evolution/local", listener);

I get the 'evolution-shell:folder_created occurred' event via the Bonobo
Listener, but nothing shows up in Evolution and the expected folder in the
/home/patrickg/evolution/local/ directory does not appear.  I have been able
to do a work-around by creating the directory manually and populating it
with an empty .ics file and a folder-metadata.xml file, but it requires a
restart of Evolution for the app to pick it up.  I'd be happy to just find a
way to get Evo to pick it up without a restart.

As far as what language, I'm using Java bindings which so far have proved
pretty reliable.



-----Original Message-----
From: Not Zed [mailto:notzed ximian com]
Sent: Tuesday, June 24, 2003 12:50 AM
To: Patrick Gerzanics
Cc: evolution-hackers lists ximian com
Subject: Re: [Evolution-hackers] Creating folders via CORBA interface

On Tue, 2003-06-24 at 06:57, Patrick Gerzanics wrote:
> What is the 'recommended' way for creating additional folders (such as
> Calendar/Tasks/etc.) via the CORBA interface?  Currently I am using the
> GNOME/Evolution/Storage interface which allows me to obtain the list of
> GNOME/Evolution/Folder objects but when I attempt to call:
> createAsyncFolder(...) it crashes Evolution.
> I've tried the following parameters:
> asyncCreateFolder("file:///home/patrickg/evolution/local/Test1",
> "Test1", "", listenerReference)
> asyncCreateFolder("file:///home/patrickg/evolution/local/Test1",
> "Test1", "file:///home/patrickg/evolution/local/", listenerReference)
> asyncCreateFolder("file:///home/patrickg/evolution/local/Test1",
> "Test1", "file:///home/patrickg/evolution/local", listenerReference)
> There was no documentation for these functions which makes me wonder if
> they're intended to be private CORBA interfaces, in which case what is the
> intended way of creating the folders?

Hmm, you're adventurous.

Unfortunately I dont know the answer either :-/  Those interfaces look
'right' to me.

Although definelty one problem, is the arguments aren't quite right.

void asyncCreateFolder (in string path,
                                        in string type,
                                        in string description,
                                        in string parent_physical_uri,
                                        in Bonobo::Listener listener);

path is just a simple path, from the root directory of the component.
i.e. probably just 'Test1' in this case.  It should match the uri in
some form or another.

But on the other hand, local folders are handled in a rather odd way, so
... i dont know.

> Also, is there a way to make the retail version of Evolution (1.4
> via the Ximian Red Carpet method) emit debug information?  It would be
> to have more feedback then 'Application "evolution-1.4... has crashed due
> a fatal error"

run it inside gdb and get a backtrace when it crashes.

but unless you have debugging symbols (and even better, the source
itself), you're not going to find a lot of terribly useful information
from the traces generated - you might get enough for a hint though.

> Thanks for any and all assistance.

what language are you trying this with anyway?

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