if (currFile != null && !currFile.done())
if (!files.isEmpty())
  public void cleanup() {    if (currFile != null && !currFile.done())      log(className + ": warning: cleaning up while processsing is incomplete");    dumpers.interrupt();    //keepAlives.interrupt();    synchronized (this) {      if (verbose)	if (clients.size() > 0)	  log("cleaning up clients");      Iterator users = clients.values().iterator();      while (users.hasNext()) {	SwitchboardUserData userData = (SwitchboardUserData)users.next();	SwitchboardUser user = userData.switchboardUser();	if (verbose)	  log("trying to kill client No. " + userData.id);	try { user.die(true); }	catch (RemoteException re) {}      }      if (verbose)	if (servers.size() > 0)	  log("cleaning up servers");      users = servers.values().iterator();      while (users.hasNext()) {	SwitchboardUserData userData = (SwitchboardUserData)users.next();	SwitchboardUser user = userData.switchboardUser();	if (verbose)	  log("trying to kill server No. " + userData.id);	try { user.die(true); }	catch (RemoteException re) {}      }    }    /*    System.err.println("No. of clients left in database: " + clients.size());    System.err.println("No. of servers left in database: " + servers.size());    */    try { Naming.unbind(bindingName); }    catch (MalformedURLException mue) {      System.err.println(mue);    }    catch (RemoteException re) {      System.err.println("trouble unbinding switchboard (" + re + ")");    }    catch (NotBoundException nbe) {      System.err.println("trouble unbinding switchboard (" + nbe + ")");    }    try { UnicastRemoteObject.unexportObject(this, false); }    catch (NoSuchObjectException nsoe) {      System.err.println(nsoe);    }    System.err.println(className + ": unbound and unexported self");  }