@Override public void handle(Request wsRequest, Response wsResponse) throws Exception { userSession.checkAnyGlobalPermissions(AUTHORIZED_PERMISSIONS); String taskUuid = wsRequest.mandatoryParam(PARAM_TASK_UUID); DbSession dbSession = dbClient.openSession(false); try { WsCe.TaskResponse.Builder wsTaskResponse = WsCe.TaskResponse.newBuilder(); Optional<CeQueueDto> queueDto = dbClient.ceQueueDao().selectByUuid(dbSession, taskUuid); if (queueDto.isPresent()) { wsTaskResponse.setTask(wsTaskFormatter.formatQueue(dbSession, queueDto.get())); } else { Optional<CeActivityDto> activityDto = dbClient.ceActivityDao().selectByUuid(dbSession, taskUuid); if (activityDto.isPresent()) { wsTaskResponse.setTask(wsTaskFormatter.formatActivity(dbSession, activityDto.get())); } else { throw new NotFoundException(); } } writeProtobuf(wsTaskResponse.build(), wsRequest, wsResponse); } finally { dbClient.closeSession(dbSession); } }