/** * Create or overwrite a revision. * * <p>This method doesn't check site id because ProjectControl interface is avaiable only if * site is is valid. */ @Override public StoredRevision insertRevision(int projId, Revision revision) throws ResourceConflictException { int revId = catchConflict( () -> dao.insertRevision( projId, revision.getName(), revision.getDefaultParams(), revision.getArchiveType().getName(), revision.getArchiveMd5().orNull(), revision.getArchivePath().orNull(), revision.getUserInfo()), "revision=%s in project id=%d", revision.getName(), projId); try { return requiredResource(dao.getRevisionById(siteId, revId), "revision id=%d", revId); } catch (ResourceNotFoundException ex) { throw new IllegalStateException("Database state error", ex); } }