public void execute(Content content) { ByteArrayInputStream bis = new ByteArrayInputStream(content.getContent()); ObjectInputStream in; try { in = new ObjectInputStream(bis); Object result = in.readObject(); in.close(); results.put("Result", result); if (result instanceof Map) { Map<?, ?> map = (Map) result; for (Map.Entry<?, ?> entry : map.entrySet()) { if (entry.getKey() instanceof String) { results.put((String) entry.getKey(), entry.getValue()); } } } session.getWorkItemManager().completeWorkItem(task.getTaskData().getWorkItemId(), results); } catch (IOException e) { logger.error(e.getMessage(), e); } catch (ClassNotFoundException e) { logger.error(e.getMessage(), e); } } }
@Override public synchronized void setError(RuntimeException error) { super.setError(error); if (action.equals(OnErrorAction.ABORT)) { session.getWorkItemManager().abortWorkItem(workItemId); } else if (action.equals(OnErrorAction.RETHROW)) { throw getError(); } else if (action.equals(OnErrorAction.LOG)) { StringBuffer logMsg = new StringBuffer(); logMsg.append(new Date() + ": Error when creating task on task server for work item id " + workItemId); logMsg.append(". Error reported by task server: " + getError().getMessage()); logger.error(logMsg.toString(), getError()); } } }
public void execute(Task task) { long workItemId = task.getTaskData().getWorkItemId(); if (task.getTaskData().getStatus() == Status.Completed) { String userId = task.getTaskData().getActualOwner().getId(); Map<String, Object> results = new HashMap<String, Object>(); results.put("ActorId", userId); long contentId = task.getTaskData().getOutputContentId(); if (contentId != -1) { GetContentResponseHandler getContentResponseHandler = new GetResultContentResponseHandler(task, results); client.getContent(contentId, getContentResponseHandler); } else { session.getWorkItemManager().completeWorkItem(workItemId, results); } } else { session.getWorkItemManager().abortWorkItem(workItemId); } } }