[jbpm-issues] [JBoss JIRA] Assigned: (JBPM-2679) ExecutionService deleteProcessInstance() and deleteProcessInstanceCascade() silently fails if processinstance is not found
Joram Barrez (JIRA)
jira-events at lists.jboss.org
Fri Jan 8 05:53:30 EST 2010
[ https://jira.jboss.org/jira/browse/JBPM-2679?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Joram Barrez reassigned JBPM-2679:
----------------------------------
Assignee: Joram Barrez
> ExecutionService deleteProcessInstance() and deleteProcessInstanceCascade() silently fails if processinstance is not found
> --------------------------------------------------------------------------------------------------------------------------
>
> Key: JBPM-2679
> URL: https://jira.jboss.org/jira/browse/JBPM-2679
> Project: jBPM
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Affects Versions: jBPM 4.x
> Environment: JBPM 4.2
> Reporter: Peter Horvath
> Assignee: Joram Barrez
>
> ExecutionService deleteProcessInstance() and deleteProcessInstanceCascade() should throw an exception if the specified process instance is not found.
> Current ExecutionService deleteProcessInstance() and deleteProcessInstanceCascade() implementations call the method public void deleteProcessInstance(String processInstanceId, boolean deleteHistory) in DbSessionImpl
> The code tries to lookup the process instance, but the deletion is only attempted if the process instance is found:
> ExecutionImpl processInstance = (ExecutionImpl) findProcessInstanceByIdIgnoreSuspended(processInstanceId);
> if (processInstance!=null) {
> // delete remaining tasks for this process instance
> List<TaskImpl> tasks = findTasks(processInstanceId);
> for (TaskImpl task: tasks) {
> session.delete(task);
> }
> // delete remaining jobs for this process instance
> JobImpl currentJob = EnvironmentImpl.getFromCurrent(JobImpl.class, false);
> List<JobImpl> jobs = findJobs(processInstanceId);
> for (JobImpl job: jobs) {
> if (job!=currentJob){
> session.delete(job);
> }
> }
> if (log.isDebugEnabled()) {
> log.debug("deleting process instance "+processInstanceId);
> }
> session.delete(processInstance);
> }
> Since not finding a process instance usually indicates an error, the method should throw an exception to notify caller code.
> I think this code should be modified to throw an exception if the process instance is not found:
> ExecutionImpl processInstance = (ExecutionImpl) findProcessInstanceByIdIgnoreSuspended(processInstanceId);
> if (processInstance==null) {
> throw new JbpmException("processInstance is not found");
> }
> ...
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jbpm-issues
mailing list