diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java index 1205efcfdbd..f69203a8717 100644 --- a/server/src/com/cloud/api/ApiResponseHelper.java +++ b/server/src/com/cloud/api/ApiResponseHelper.java @@ -2248,7 +2248,7 @@ public class ApiResponseHelper implements ResponseGenerator { } @Override - public AsyncJobResponse queryJobResult(QueryAsyncJobResultCmd cmd) { + public AsyncJobResponse queryJobResult(QueryAsyncJobResultCmd cmd) throws InvalidParameterValueException{ AsyncJobResult result = ApiDBUtils._asyncMgr.queryAsyncJobResult(cmd); AsyncJobResponse response = new AsyncJobResponse(); response.setId(result.getJobId()); diff --git a/server/src/com/cloud/async/AsyncJobManager.java b/server/src/com/cloud/async/AsyncJobManager.java index ae3a8740eae..3292e573480 100644 --- a/server/src/com/cloud/async/AsyncJobManager.java +++ b/server/src/com/cloud/async/AsyncJobManager.java @@ -19,6 +19,8 @@ package com.cloud.async; import com.cloud.api.commands.QueryAsyncJobResultCmd; +import com.cloud.exception.InvalidParameterValueException; +import com.cloud.exception.PermissionDeniedException; import com.cloud.utils.component.Manager; public interface AsyncJobManager extends Manager { @@ -43,5 +45,5 @@ public interface AsyncJobManager extends Manager { * @param cmd the command that specifies the job id * @return an async-call result object */ - public AsyncJobResult queryAsyncJobResult(QueryAsyncJobResultCmd cmd); + public AsyncJobResult queryAsyncJobResult(QueryAsyncJobResultCmd cmd) throws InvalidParameterValueException, PermissionDeniedException; } diff --git a/server/src/com/cloud/async/AsyncJobManagerImpl.java b/server/src/com/cloud/async/AsyncJobManagerImpl.java index 48425c0b87a..a22ad00581d 100644 --- a/server/src/com/cloud/async/AsyncJobManagerImpl.java +++ b/server/src/com/cloud/async/AsyncJobManagerImpl.java @@ -45,6 +45,7 @@ import com.cloud.api.response.ExceptionResponse; import com.cloud.async.dao.AsyncJobDao; import com.cloud.cluster.ClusterManager; import com.cloud.configuration.dao.ConfigurationDao; +import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.maid.StackMaid; import com.cloud.user.Account; @@ -260,7 +261,11 @@ public class AsyncJobManagerImpl implements AsyncJobManager { } @Override - public AsyncJobResult queryAsyncJobResult(QueryAsyncJobResultCmd cmd) throws PermissionDeniedException { + public AsyncJobResult queryAsyncJobResult(QueryAsyncJobResultCmd cmd) throws InvalidParameterValueException, PermissionDeniedException { + AsyncJobVO job = _jobDao.findById(cmd.getId()); + if (job == null) { + throw new InvalidParameterValueException("Unable to find a job by id " + cmd.getId()); + } return queryAsyncJobResult(cmd.getId()); }