add:  try { var dataSource = top.rdf.GetDataSource("rdf:addressdirectory"); dataSource.AddObserver (addressBookObserver); } catch (ex) { dump(ex + "\n"); dump("Error adding to RDF datasource\n"); } 
context: function OnLoadAddressBook(){	gAddressBookBundle = document.getElementById("bundle_addressBook");	verifyAccounts(); 	// this will do migration, if we need to.	top.addressbook = Components.classes["@mozilla.org/addressbook;1"].createInstance();	top.addressbook = top.addressbook.QueryInterface(Components.interfaces.nsIAddressBook);	top.gUpdateCardView = UpdateCardView;  try {    gAddressBookSession = Components.classes["@mozilla.org/addressbook/services/session;1"].getService(Components.interfaces.nsIAddrBookSession);    gAddressBookSession.addAddressBookListener(addressBookListener);	}   catch (ex)   {    dump("Error adding to address book session\n");  }	InitCommonJS();	GetCurrentPrefs();	// FIX ME - later we will be able to use onload from the overlay	OnLoadCardView();		try {		top.addressbook.setWebShellWindow(window)	}	catch (ex) {		dump("failed to set webshell window\n");	}	SetupCommandUpdateHandlers();	//workaround - add setTimeout to make sure dynamic overlays get loaded first	setTimeout('SelectFirstAddressBook()',0);}
meta: 8395	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/8395/eb07f987fc3cd26963734ab7de769ad2f869c322/addressbook.js/buggy/mailnews/addrbook/resources/content/addressbook.js