After a recent upgrade of Thunderbird (to version 24.0), I seem unable to redirect emails. The dialog for redirection comes up, I am able to input addresses, etc, but the "Redirect" button does not do anything. Also pressing CTRL-ENTER does nothing.
The Javascript console show the following:
[JavaScript Error: "An error occurred executing the cmd_mailredirect_now command: [Exception... "'Component not initialized' when calling method: [nsIAbDirectory::childNodes]" nsresult: "0xc1f30001 (NS_ERROR_NOT_INITIALIZED)" location: "JS frame :: chrome://mailredirect/content/mailredirect-compose.js :: BuildMailListArray :: line 2355" data: no]" {file: "chrome://global/content/globalOverlay.js" line: 95}]
I can close the dialog, but no mail will have been sent.
Hi Sven,
What version of Mail Redirect are you using?
And maybe also on what platform...
Onno
Hi Onno,
Sorry, silly of me to omit this information!
I'm running Thunderbird on Linux (Ubuntu 12.04 64 bit). I'm using Mail Redirect 0.7.9 (with auto update enabled, no updates according to my Thunderbird).
With kind regards,
Sven
Hmz, I'm hoping you're using Mail Redirect 0.7.8, because 0.7.9 isn't release yet, only 0.7.9a1 on BabelZilla to get updates on strings...
And you're not yet using Thunderbird 24.0.1, right?
Hmmmmmz! OOPS :-/
Yes, it's 0.7.8.
Thunderbird says it's 24.0, and also the Debian package has version 24.0, not 24.0.1.
Sven
I think there's something strange with your Address Books, but i need more info to debug this issue, since I cannot reproduce it.
Can you please list the address books you have, like Personal Address Book, LDAP Directory, Collected Addresses etc.
I'm also interested if there's anything special about your setup. Maybe you migrated from old Netscape and you have some legacy address books or other mork address books? I'm not sure how you can tell from looking at it, though.
Do you have mailing lists? In which address books?
Does it fail when you redirect to someone in your personal address book?
Hi Onno,
Thank you for your investigation so far! I'll try to answer your questions below:
I have the following address books:
The person I was trying to redirect a mail to is in the Collected Addresses address book.
I don't think there anything special about the setup, it's always been Thunderbird, never another mail client. I've had it for years and years though, so Thunderbird has been upgraded numerous times, perhaps causing some trouble while upgrades were performed by Thunderbird itself?
I do not have any mailing lists myself. I am a member of several mailing lists, of course, but only the mailing lists' addresses are in the address book, not the addresses of the people in those mailing lists. Essentially, Thunderbird does not know that those addresses belong to mailing lists, I guess.
Aha! The address book in which the address is located definitely has something to do with it. I can redirect mail to my Personal Address Book contacts and to myself (from the Personal address book).
My Ubuntu One address book is empty, so I cannot test whether I can redirect to addresses in that address book. Could the empty address book be a problem, by the way, as a special, not frequently occurring, case?
I cannot redirect mail to people in my Collected Addresses address book. I get the error that I've posted previously. If Mail Redirect loops through the address books looking for the contacts, then my conclusion is that either my Ubuntu One address book is causing trouble, or the Collected Addresses address book.
Is there any Javascript code that I could run in Thunderbird's error console that would help you determine what is going on? I'd be happy to try things on my end if you're willing to spend the time to try to solve my problem.
With kind regards,
Sven
I think the empty Ubuntu One address book is the cause.
The error is in parentDir.childNodes and that empty address book probably doesn't have any childNodes. I tried reproducing by making an empty address book myself, but that doesn't fail, so it's probably the special case with the Ubuntu One address book. I have a VMWare Ubuntu 32 bits, but there I don't see an Ubuntu One address book. Can you explain to me how I get it? That might help in fixing it.
Hi Onno,
I've done some investigating. It is automatically created when a Thunderbird extension "EDS Contact Integration 0.6" is installed and enabled. I've now disabled the extension, which has the effect of removing both the Personal address book and the Ubuntu One address book. Furthermore, I am now able to redirect mail to people in my Collected Addresses address book.
Re-enabling the extension restores the two address books, and has the adverse effect on Redirect Mail again.
On my system, the extension is provided by the file /usr/lib/thunderbird-addons/extensions/edsintegration@mozilla.com.xpi, which is part of the Debian package called thunderbird. If you've installed Thunderbird, then you must also have the extension, but it could be disabled on your system?
The extension facilitates using Ubuntu One (which I do not use) contacts with Thunderbird. Perhaps the fact that I do not use Ubuntu One causes the problem with the extension.
With kind regards,
Sven
"Ubuntu One" is an instance of nsAbEDSDirectory which implements
nsIAbDirectory interface.
This is an implementation of childNodes()
http://bazaar.launchpad.net/~extension-hackers/thunderbird-eds-extension/thunderbird-eds-integration/view/head:/res/modules/nsAbEDSDirectory.jsm#L833
childNodes throws NS_ERROR_NOT_INITIALIZED exception if
nsAbEDSDirectory is not opened.
Onno, I would skip not opened nsAbEDSDirectories.
Hi Sven,
I don't think I've installed Thunderbird through Ubuntu's package manager, but rather from getthunderbird.com. Mine doesn't have EDS Contact Integration, so I cannot test that at the moment.
Hi Paweł,
I don't think I can test for parentDir._open or otherwise see that the directory is an unopened nsIAbEDSDirectory, can I? Maybe I should just add a try/catch and skip the directory if childNodes() fails?
Sorry, status change to wont-fix was by accident
Onno,
You should test if abDirectory "speaks" like nsIAbEDSDirectory. Something like this in line 2211
// check if abDirectory has interface nsIAbEDSDirectory
if (Ci.nsIAbEDSDirectory && abDirectory.QueryInterface(Ci.nsIAbEDSDirectory) && !abDirectory._open)
continue;
I'm in a hurry, so please excuse me not checking the code..
This bug will be fixed in Mailredirect 0.7.9.
Thank you Sven, for reporting and helping debugging/testing.
Sorry for the bug spam, I'm still tweaking SourceForge's Ticket system...