Metadata metadata = rootDomainObject.readMetadataByOID(metadataId);
    public InfoQuestion run(Integer executionCourseId, Integer metadataId, Integer questionId, String path) throws FenixServiceException,            ExcepcaoPersistencia {        this.path = path.replace('\\', '/');        Question question = null;        if (questionId == null || questionId.equals(new Integer(-1))) {            if (metadataId == null)                throw new InvalidArgumentsServiceException();            Metadata metadata = rootDomainObject.readMetadataByOID(metadataId);            if (metadata == null || metadata.getVisibleQuestions() == null && metadata.getVisibleQuestions().size() == 0) {                throw new InvalidArgumentsServiceException();            }            question = metadata.getVisibleQuestions().get(0);        } else {            question = rootDomainObject.readQuestionByOID(questionId);        }        if (question == null) {            throw new InvalidArgumentsServiceException();        }        InfoQuestion infoQuestion = InfoQuestionWithInfoMetadata.newInfoFromDomain(question);        ParseQuestion parse = new ParseQuestion();        try {            infoQuestion = parse.parseQuestion(infoQuestion.getXmlFile(), infoQuestion, this.path);            if (infoQuestion.getQuestionType().getType().equals(new Integer(QuestionType.LID)))                infoQuestion.setResponseProcessingInstructions(parse.newResponseList(infoQuestion.getResponseProcessingInstructions(), infoQuestion                        .getOptions()));        } catch (Exception e) {            throw new FenixServiceException(e);        }        return infoQuestion;    }