nmgr.app.logEvent ("inserted: Node "+node.getName ()+"/"+node.getID ());
nmgr.app.logEvent ("inserted: Node "+node.getPrototype ()+"/"+node.getID ());
    public synchronized void commit () throws Exception {	if (killed) {	    abort ();	    return;	}	int ins = 0, upd = 0, dlt = 0;	int l = nodes.size ();	for (Iterator i=nodes.values().iterator(); i.hasNext (); ) {	    Node node = (Node) i.next ();	    // update nodes in db	    int nstate = node.getState ();	    if (nstate == Node.NEW) {	        nmgr.registerNode (node); // register node with nodemanager cache	        nmgr.insertNode (nmgr.db, txn, node);	        node.setState (Node.CLEAN);	        ins++;	        nmgr.app.logEvent ("inserted: Node "+node.getName ()+"/"+node.getID ());	    } else if (nstate == Node.MODIFIED) {	        nmgr.updateNode (nmgr.db, txn, node);	        node.setState (Node.CLEAN);	        upd++;	        nmgr.app.logEvent ("updated: Node "+node.getName ()+"/"+node.getID ());	    } else if (nstate == Node.DELETED) {	        // nmgr.app.logEvent ("deleted: "+node.getFullName ()+" ("+node.getName ()+")");	        nmgr.deleteNode (nmgr.db, txn, node);	        nmgr.evictNode (node);	        dlt++;	    } else {	        // nmgr.app.logEvent ("noop: "+node.getFullName ());	    }	    node.clearWriteLock ();	}	nodes.clear ();	cleannodes.clear ();	if (nmgr.idgen.dirty) {	    nmgr.db.save (txn, "idgen", nmgr.idgen);	    nmgr.idgen.dirty = false;	}	if (active) {	    active = false;	    nmgr.db.commitTransaction (txn);	    txn = null;	}	nmgr.app.logAccess (tname+" "+l+" marked, "+ins+" inserted, "+upd+" updated, "+dlt+" deleted in "+(System.currentTimeMillis()-tstart)+" millis");    }