public void setStatus(String studyStr, String fileId, String status, String message, String sessionId) throws CatalogException {
MyResource<File> resource = getUid(fileId, studyStr, sessionId);
String userId = resource.getUser();
long fileUid = resource.getResource().getUid();
authorizationManager.checkFilePermission(resource.getStudy().getUid(), fileUid, userId, FileAclEntry.FilePermissions.WRITE);
if (status != null && !File.FileStatus.isValid(status)) {
throw new CatalogException("The status " + status + " is not valid file status.");
}
ObjectMap parameters = new ObjectMap();
parameters.putIfNotNull(FileDBAdaptor.QueryParams.STATUS_NAME.key(), status);
parameters.putIfNotNull(FileDBAdaptor.QueryParams.STATUS_MSG.key(), message);
fileDBAdaptor.update(fileUid, parameters, QueryOptions.empty());
auditManager.recordUpdate(AuditRecord.Resource.file, fileUid, userId, parameters, null, null);
}