### Question:
ProcessInstanceService extends BaseService { public Map<String, DependResult> parseLogForDependentResult(String log) throws IOException { Map<String, DependResult> resultMap = new HashMap<>(); if (StringUtils.isEmpty(log)) { return resultMap; } BufferedReader br = new BufferedReader(new InputStreamReader(new ByteArrayInputStream(log.getBytes( StandardCharsets.UTF_8)), StandardCharsets.UTF_8)); String line; while ((line = br.readLine()) != null) { if (line.contains(DEPENDENT_SPLIT)) { String[] tmpStringArray = line.split(":\\|\\|"); if (tmpStringArray.length != 2) { continue; } String dependResultString = tmpStringArray[1]; String[] dependStringArray = dependResultString.split(","); if (dependStringArray.length != 2) { continue; } String key = dependStringArray[0].trim(); DependResult dependResult = DependResult.valueOf(dependStringArray[1].trim()); resultMap.put(key, dependResult); } } return resultMap; }  Map<String, Object> queryTopNLongestRunningProcessInstance(User loginUser, String projectName, int size, String startTime, String endTime); Map<String, Object> queryProcessInstanceById(User loginUser, String projectName, Integer processId); Map<String, Object> queryProcessInstanceList(User loginUser, String projectName, Integer processDefineId,
                                                        String startDate, String endDate,
                                                        String searchVal, String executorName, ExecutionStatus stateType, String host,
                                                        Integer pageNo, Integer pageSize); Map<String, Object> queryTaskListByProcessId(User loginUser, String projectName, Integer processId); Map<String, DependResult> parseLogForDependentResult(String log); Map<String, Object> querySubProcessInstanceByTaskId(User loginUser, String projectName, Integer taskId); Map<String, Object> updateProcessInstance(User loginUser, String projectName, Integer processInstanceId,
                                                     String processInstanceJson, String scheduleTime, Boolean syncDefine,
                                                     Flag flag, String locations, String connects); Map<String, Object> queryParentInstanceBySubId(User loginUser, String projectName, Integer subId); @Transactional(rollbackFor = RuntimeException.class) Map<String, Object> deleteProcessInstanceById(User loginUser, String projectName, Integer processInstanceId); Map<String, Object> viewVariables(Integer processInstanceId); Map<String, Object> viewGantt(Integer processInstanceId); List<ProcessInstance> queryByProcessDefineIdAndStatus(int processDefinitionId, int[] states); List<ProcessInstance> queryByProcessDefineId(int processDefinitionId,int size);  }### Answer:
@Test public void testParseLogForDependentResult() throws IOException { String logString = "[INFO] 2019-03-19 17:11:08.475 org.apache.dolphinscheduler.server.worker.log.TaskLogger:[172]" + " - [taskAppId=TASK_223_10739_452334] dependent item complete :|| 223-ALL-day-last1Day,SUCCESS\n" + "[INFO] 2019-03-19 17:11:08.476 org.apache.dolphinscheduler.server.worker.runner.TaskScheduleThread:[172]" + " - task : 223_10739_452334 exit status code : 0\n" + "[root@node2 current]# "; Map<String, DependResult> resultMap = processInstanceService.parseLogForDependentResult(logString); Assert.assertEquals(1, resultMap.size()); }