rem: try {  var src = RDF.GetResource(uri, true); var prop = RDF.GetResource("http: var oldLiteral = gSubscribeDS.GetTarget(src, prop, true);   oldValue = oldLiteral.QueryInterface(Components.interfaces.nsIRDFLiteral).Value;  if (oldValue != stateStr) { var newLiteral = RDF.GetLiteral(stateStr); gSubscribeDS.Change(src, prop, oldLiteral, newLiteral); StateChanged(name,state); } } catch (ex) { dump("failed: " + ex + "\n"); 
add: var changed = gSubscribableServer.setState(name, state); if (changed) { StateChanged(name,state); 
context: function SetState(uri,name,state,stateStr){	//dump("SetState(" + uri +"," + name + "," + state + "," + stateStr + ")\n");	if (!uri || !stateStr) return;	try {		// xxx should we move this code into nsSubscribableServer.cpp?		var src = RDF.GetResource(uri, true);		var prop = RDF.GetResource("http://home.netscape.com/NC-rdf#Subscribed", true);		var oldLiteral = gSubscribeDS.GetTarget(src, prop, true);		//dump("oldLiteral="+oldLiteral+"\n");		oldValue = oldLiteral.QueryInterface(Components.interfaces.nsIRDFLiteral).Value;		//dump("oldLiteral.Value="+oldValue+"\n");		if (oldValue != stateStr) {			var newLiteral = RDF.GetLiteral(stateStr);			gSubscribeDS.Change(src, prop, oldLiteral, newLiteral);			StateChanged(name,state);		}	}	catch (ex) {		dump("failed: " + ex + "\n");	}}
meta: 10234	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/10234/3a79a2ff9bf6c3e0320be41803c1ce6dd02cfba4/subscribe.js/buggy/mailnews/base/resources/content/subscribe.js