public virtual HistoryEvent CreateHistoricExternalTaskLogFailedEvt(IExternalTask task) { HistoricExternalTaskLogEntity @event = InitHistoricExternalTaskLog((ExternalTaskEntity)task, ExternalTaskStateFields.Failed); @event.ErrorMessage = task.ErrorMessage; string errorDetails = ((ExternalTaskEntity)task).ErrorDetails; if (!string.ReferenceEquals(errorDetails, null)) { @event.ErrorDetails = errorDetails; } return(@event); }
public virtual string Execute(CommandContext commandContext) { EnsureUtil.EnsureNotNull("historicExternalTaskLogId", HistoricExternalTaskLogId); HistoricExternalTaskLogEntity @event = commandContext.HistoricExternalTaskLogManager.FindHistoricExternalTaskLogById(HistoricExternalTaskLogId); EnsureUtil.EnsureNotNull("No historic external ITask log found with id " + HistoricExternalTaskLogId, "historicExternalTaskLog", @event); foreach (var checker in commandContext.ProcessEngineConfiguration.CommandCheckers) { checker.CheckReadHistoricExternalTaskLog(@event); } return(@event.ErrorDetails); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void testHistoricExternalTaskJobLogStacktraceBinary() public virtual void testHistoricExternalTaskJobLogStacktraceBinary() { // given testRule.deploy("org/camunda/bpm/engine/test/api/externaltask/oneExternalTaskProcess.bpmn20.xml"); runtimeService.startProcessInstanceByKey("oneExternalTaskProcess"); IList <LockedExternalTask> tasks = externalTaskService.fetchAndLock(5, WORKER_ID).topic(TOPIC_NAME, LOCK_TIME).execute(); LockedExternalTask task = tasks[0]; // submitting a failure (after a simulated processing time of three seconds) ClockUtil.CurrentTime = nowPlus(3000L); string errorMessage; string exceptionStackTrace; try { throw new RuntimeSqlException("test cause"); } catch (Exception e) { exceptionStackTrace = ExceptionUtils.getStackTrace(e); errorMessage = e.Message; } assertNotNull(exceptionStackTrace); externalTaskService.handleFailure(task.Id, WORKER_ID, errorMessage, exceptionStackTrace, 5, 3000L); HistoricExternalTaskLogEntity entity = (HistoricExternalTaskLogEntity)historyService.createHistoricExternalTaskLogQuery().errorMessage(errorMessage).singleResult(); assertNotNull(entity); ByteArrayEntity byteArrayEntity = configuration.CommandExecutorTxRequired.execute(new GetByteArrayCommand(entity.ErrorDetailsByteArrayId)); // then checkBinary(byteArrayEntity); }
protected internal virtual HistoricExternalTaskLogEntity InitHistoricExternalTaskLog(ExternalTaskEntity entity, IExternalTaskState state) { HistoricExternalTaskLogEntity @event = new HistoricExternalTaskLogEntity(); @event.TimeStamp = ClockUtil.CurrentTime; @event.ExternalTaskId = entity.Id; @event.TopicName = entity.TopicName; @event.WorkerId = entity.WorkerId; @event.Priority = entity.Priority; @event.Retries = entity.Retries; @event.ActivityId = entity.ActivityId; @event.ActivityInstanceId = entity.ActivityInstanceId; @event.ExecutionId = entity.ExecutionId; @event.ProcessInstanceId = entity.ProcessInstanceId; @event.ProcessDefinitionId = entity.ProcessDefinitionId; @event.ProcessDefinitionKey = entity.ProcessDefinitionKey; @event.TenantId = entity.TenantId; @event.State = state.StateCode; return(@event); }