code: @Override
      public void actionCommit() {
  
          List errors = new ArrayList();
  
          try {
              // if new create it first
              if (m_project.getUuid() == null) {
                  CmsProject newProject = getCms().createProject(
                      m_project.getName(),
                      m_project.getDescription(),
                      getUserGroup(),
                      getManagerGroup(),
                      m_project.getType());
                  m_project = newProject;
              } else {
                  getCms().writeProject(m_project);
              }
              // write the edited project resources
              CmsProject currentProject = getCms().getRequestContext().getCurrentProject();
              // change the current project
              getCms().getRequestContext().setCurrentProject(m_project);
              // store the current site root
              String currentSite = getCms().getRequestContext().getSiteRoot();
              // copy the resources to the current project
              try {
                  // switch to the root site
                  getCms().getRequestContext().setSiteRoot("");
  
                  // remove deleted resources
                  Iterator itDel = getCms().readProjectResources(m_project).iterator();
                  while (itDel.hasNext()) {
                      String resName = itDel.next().toString();
                      if (!getResources().contains(resName)) {
                          getCms().removeResourceFromProject(resName);
                      }
                  }
                  // read project resources again!
                  List currentResNames = getCms().readProjectResources(m_project);
                  // copy missing resources
                  Iterator itAdd = getResources().iterator();
                  while (itAdd.hasNext()) {
                      String resName = itAdd.next().toString();
                      if (!currentResNames.contains(resName)) {
                          getCms().copyResourceToProject(resName);
                      }
                  }
              } finally {
                  // switch back to current site and project
                  getCms().getRequestContext().setSiteRoot(currentSite);
                  getCms().getRequestContext().setCurrentProject(currentProject);
              }
              // refresh the list
              Map objects = (Map)getSettings().getListObject();
              if (objects != null) {
                  objects.remove(CmsProjectsList.class.getName());
              }
          } catch (Throwable t) {
              errors.add(t);
          }
          // set the list of errors to display when saving failed
          setCommitErrors(errors);
      }
docs: Commits the edited project to the database.<p>