rem: sidebar.datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource).Flush(); 
add: sidebarObj.datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource).Flush(); 
context: function Save(){  var all_panels = document.getElementById('other-panels');  var current_panels = document.getElementById('current-panels');  // Iterate through the 'current-panels' tree to collect the panels  // that the user has chosen. We need to do this _before_ we remove  // the panels from the datasource, because the act of removing them  // from the datasource will change the tree!  var panels = new Array();  var root = document.getElementById('current-panels-root');  for (var node = root.firstChild; node != null; node = node.nextSibling) {    panels[panels.length] = node.getAttribute('id');  }  // Cut off the connection between the dialog and the datasource.  // The dialog is closed at the end of this function.  // Without this, the dialog tries to update as it is being destroyed.  current_panels.setAttribute('ref', 'rdf:null');  start_batch(sidebar.datasource, sidebar.resource);  // Create a "container" wrapper around the current panels to  // manipulate the RDF:Seq more easily.  var container = Components.classes["component://netscape/rdf/container"].createInstance();  container = container.QueryInterface(Components.interfaces.nsIRDFContainer);  container.Init(sidebar.datasource, RDF.GetResource(sidebar.resource));  // Remove all the current panels from the datasource.  var current_panels = container.GetElements();  while (current_panels.HasMoreElements()) {    panel = current_panels.GetNext();    id = panel.QueryInterface(Components.interfaces.nsIRDFResource).Value;    // If this panel is not in the new list,    // or, if description of this panel is in the all panels list,    // then, remove all assertions for the panel to avoid leaving    // unneeded assertions behind and to avoid multiply asserted    // attributes, respectively.    if (!has_element(panels, id) ||         has_targets(all_panels.database, panel)) {      delete_resource_deeply(container, panel);    } else {      container.RemoveElement(panel, false);    }  }  // Add the new list of panels  for (var ii = 0; ii < panels.length; ++ii) {    copy_resource_deeply(all_panels.database, RDF.GetResource(panels[ii]),                         container);  }  end_batch(sidebar.datasource, sidebar.resource);  // Write the modified panels out.  sidebar.datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource).Flush();  window.close();}
meta: 8395	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/8395/aa603f0f529d7c123ea734cdd5404bca6bdb5c50/customize.js/clean/suite/common/sidebar/customize.js