public void setStatus(String studyStr, String id, String status, String message, String sessionId) throws CatalogException {
ParamUtils.checkParameter(sessionId, "sessionId");
MyResource resource = getUid(id, studyStr, sessionId);
authorizationManager.checkJobPermission(resource.getStudy().getUid(), resource.getResource().getUid(), resource.getUser(),
JobAclEntry.JobPermissions.UPDATE);
if (status != null && !Job.JobStatus.isValid(status)) {
throw new CatalogException("The status " + status + " is not valid job status.");
}
ObjectMap parameters = new ObjectMap();
parameters.putIfNotNull(JobDBAdaptor.QueryParams.STATUS_NAME.key(), status);
parameters.putIfNotNull(JobDBAdaptor.QueryParams.STATUS_MSG.key(), message);
jobDBAdaptor.update(resource.getResource().getUid(), parameters, QueryOptions.empty());
auditManager.recordUpdate(AuditRecord.Resource.job, resource.getResource().getUid(), resource.getUser(), parameters, null, null);
}