final Long projectBrokerId = project.getProjectBroker().getKey();
OLATResourceable projectBrokerOres = OresHelper.createOLATResourceableInstance(this.getClass(),projectBrokerId);
CoordinatorManager.getCoordinator().getSyncer().doInSync( projectBrokerOres, new SyncerExecutor() {
public void execute() {
// delete first candidate-group, project-group will be deleted after deleting project
SecurityGroup candidateGroup = project.getCandidateGroup();
if ( (courseEnv != null) && (cNode != null) ) {
deleteAllAttachmentFilesOfProject(project, courseEnv, cNode);
deleteAllDropboxFilesOfProject(project, courseEnv, cNode);
deleteAllReturnboxFilesOfProject(project, courseEnv, cNode);
}
DBFactory.getInstance().deleteObject(project);
log.info("deleteSecurityGroup(project.getCandidateGroup())=" + candidateGroup.getKey());
ManagerFactory.getManager().deleteSecurityGroup(candidateGroup);
ProjectBroker projectBroker = getOrLoadProjectBoker(projectBrokerId);
projectBroker.getProjects().remove(project);
projectCache.update(projectBrokerId.toString(), projectBroker);
}