diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomGetProcessInstanceVariablesToObjectCmd.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomGetProcessInstanceVariablesToObjectCmd.java index cc6bb5ef8..bfadf9559 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomGetProcessInstanceVariablesToObjectCmd.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomGetProcessInstanceVariablesToObjectCmd.java @@ -15,6 +15,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.ListUtils; import org.flowable.common.engine.api.FlowableObjectNotFoundException; import org.flowable.common.engine.impl.interceptor.CommandContext; import org.flowable.engine.HistoryService; @@ -230,7 +231,7 @@ public class CustomGetProcessInstanceVariablesToObjectCmd extends AbstractComman && fieldValue.toString().startsWith("[") && fieldValue.toString().endsWith("]")) { List selectedOptions = JSON.parseArray((String) fieldValue, String.class); - List optionNames = optionField.getOptions().stream().filter(i -> selectedOptions.contains(i.getId())).map(Option::getName).collect(Collectors.toList()); + List optionNames = ListUtils.emptyIfNull(optionField.getOptions()).stream().filter(i -> selectedOptions.contains(i.getId())).map(Option::getName).collect(Collectors.toList()); variables.add(VariableObjectDTO.builder() .key(field.getId()) .desc(field.getName()) @@ -245,7 +246,7 @@ public class CustomGetProcessInstanceVariablesToObjectCmd extends AbstractComman if (field instanceof OptionFormField) { OptionFormField optionField = (OptionFormField) field; if (StringUtils.hasText(fieldValue.toString())) { - List optionNames = optionField.getOptions().stream().filter(i -> Objects.equals(fieldValue, i.getId())).map(Option::getName).collect(Collectors.toList()); + List optionNames = ListUtils.emptyIfNull(optionField.getOptions()).stream().filter(i -> Objects.equals(fieldValue, i.getId())).map(Option::getName).collect(Collectors.toList()); variables.add(VariableObjectDTO.builder() .key(field.getId()) .desc(field.getName())