private void executeWorkflowInBackground() { DistributedComponentKnowledge compKnowledge = serviceRegistryAccess .getService(DistributedComponentKnowledgeService.class) .getCurrentComponentKnowledge(); try { WorkflowExecutionUtils.replaceNullNodeIdentifiersWithActualNodeIdentifier( wfDescription, localNodeId, compKnowledge); } catch (WorkflowExecutionException e) { handleWorkflowExecutionError(e); return; } String name = wfDescription.getName(); if (name == null) { name = Messages.bind(Messages.defaultWorkflowName, wfFile.getName().toString()); } WorkflowExecutionContextBuilder wfExeCtxBuilder = new WorkflowExecutionContextBuilder(wfDescription); wfExeCtxBuilder.setInstanceName(name); wfExeCtxBuilder.setNodeIdentifierStartedExecution(localNodeId); if (wfDescription.getAdditionalInformation() != null && !wfDescription.getAdditionalInformation().isEmpty()) { wfExeCtxBuilder.setAdditionalInformationProvidedAtStart( wfDescription.getAdditionalInformation()); } WorkflowExecutionContext wfExecutionContext = wfExeCtxBuilder.build(); final WorkflowExecutionInformation wfExeInfo; try { wfExeInfo = workflowExecutionService.executeWorkflowAsync(wfExecutionContext); } catch (WorkflowExecutionException | RemoteOperationException e) { handleWorkflowExecutionError(e); return; } // before starting the workflow, ensure that the console model is initialized // so that no console output gets lost; this is lazily initialized here // so the application startup is not slowed down try { serviceRegistryAccess .getService(ConsoleRowModelService.class) .ensureConsoleCaptureIsInitialized(); } catch (InterruptedException e) { LOG.error( "Failed initialize workflow console capturing for workflow: " + wfDescription.getName(), e); } if (inputTabEnabled) { InputModel.ensureInputCaptureIsInitialized(); } WorkflowExecutionUtils.removeDisabledWorkflowNodesWithoutNotify( wfExeInfo.getWorkflowDescription()); Display.getDefault() .asyncExec( new Runnable() { @Override public void run() { new OpenReadOnlyWorkflowRunEditorAction(wfExeInfo).run(); } }); }