if (xmlrpc != null && xmlrpcHandlerName != null) xmlrpc.removeHandler (xmlrpcHandlerName);
    public void stop () {	stopped = true;	// stop all threads, this app is going down	if (worker != null)	    worker.interrupt ();	worker = null;	if (xmlrpc != null && xmlrpcHandlerName != null)	    xmlrpc.removeHandler (xmlrpcHandlerName);	// stop evaluators	if (allThreads != null) {	    for (Enumeration e=allThreads.elements (); e.hasMoreElements (); ) {	        RequestEvaluator ev = (RequestEvaluator) e.nextElement ();	        ev.stopThread ();	    }	}	// remove evaluators	allThreads.removeAllElements ();	freeThreads = null;	// shut down node manager and embedded db	try {	    nmgr.shutdown ();	} catch (DatabaseException dbx) {	    System.err.println ("Error shutting down embedded db: "+dbx);	}	// null out type manager	typemgr = null;	// tell the extensions that we're stopped.	Vector extensions = Server.getServer ().getExtensions ();	for (int i=0; i<extensions.size(); i++) {	    HelmaExtension ext = (HelmaExtension)extensions.get(i);	    ext.applicationStopped (this);	}	// stop logs if they exist	if (eventLog != null) {	    eventLog.close ();	}	if (accessLog != null) {	    accessLog.close ();	}    }