Set workflow result in camunda process instance

In java delegate,

I have code like this
logger.info(getOutputList.toString());
execution.getProcessInstance().setVariable(“output”, getOutputList);

In my application i wanna get my output back:

public StatusOutput getProcessInstanceStatus(String piId) {
HistoricProcessInstanceQuery query = historyService.createHistoricProcessInstanceQuery()
.processInstanceId(piId.toString());
HistoricProcessInstance pi = query.singleResult();
JsonObject jsonObject = new JsonObject();
jsonObject.add(“Workflow-status”, new JsonPrimitive(pi.getState()));
if(pi.getState().equals(“COMPLETED”)) {
List executions = runtimeService.createExecutionQuery().executionId(piId).list();
Execution execution = executions.get(0); //check if null or empty
ArrayList strList = (ArrayList) runtimeService.getVariable(execution.getId(), “output”);
System.out.println(strList);
}
return new StatusOutput(jsonObject, new JsonObject());
}

Could you please correct what I have done wrong?