docs: protected void save(String fileName) throws Exception {
  	    configuration.save(new File(fileName));
  		if (isNewState()) {
  		    model.moveSessionDb(fileName);
  		} else {
  		    if (!this.fileName.equals(fileName)) {
  		        // copy file to new fileName
  		        model.copySessionDb(this.fileName, fileName);
  		    }
  		}
  	    this.fileName = fileName;
  		
      	if (! Constant.isLowMemoryOptionSet()) {
  			synchronized (siteTree) {
  			    saveSiteTree(siteTree.getRoot());
  			}
      	}
  		
  		model.getDb().getTableSession().update(getSessionId(), getSessionName());
  	}